У меня есть проблема с PropertyGrid не отображает родительское значение расширяемой недвижимости для нескольких объектов (с использованием propertygrid.SelectedObjects)PropertyGrid отображение общих свойств для нескольких объектов
[Browsable(true), TypeConverter(typeof(ExpandableObjectConverter))]
public class MyNestedClass {
private int a;
private int b;
[Browsable(true),
ReadOnly(false),
RefreshProperties(RefreshProperties.Repaint),
NotifyParentProperty(true)]
public int A {
get { return this.a; }
set { this.a = value; }
}
[Browsable(true),
ReadOnly(false),
RefreshProperties(RefreshProperties.Repaint),
NotifyParentProperty(true)]
public int B {
get { return this.b; }
set { this.b = value; }
}
public MyNestedClass(int a, int b) {
this.a = a;
this.b = b;
}
public override string ToString() {
return this.a.ToString() + “; “ + this.b.ToString();
}
}
Этого классом является частью другого класса MyClass, где myNestedClass определяется как свойство просмотра внутри.
public class MyClass {
…
private MyNestedClass myNestedClassObject;
…
[Browsable(true),
ReadOnly(false),
MergableProperty(true),
RefreshProperties(RefreshProperties.Repaint)]
public MyNestedClass MyNestedClassObject {
get { return myNestedClassObject; }
set { myNestedClassObject = value; }
}
…
}
Все работает нормально, когда в PropertyGrid отображается только один экземпляр класса myClass. PropertyGrid показывает:
…
MyNestedClassObject | 1; 2
A | 1
B | 2
…
В случае, если я пытаюсь отобразить массив MyCLASS экземпляров (через propertygrid.SelectedObjects), где myNestedClass объекты действительно имеют одинаковые значения для а и б, я вижу только то, как это в PropertyGrid:
…
MyNestedClassObject |
A | 1
B | 2
…
Я знаю, что PropertyGrid разработан, чтобы показать только общие свойства нескольких объектов, что верно для субсвойства а и Ь. Но почему так называемая «typeconverter» (или родительская) линия расширяемых свойств имеет пустую часть значения, хотя под-свойства a и b одинаковы для всех объектов?
Может кто-нибудь пролить свет на это и/или может помочь мне по этой проблеме?
Большое спасибо заранее
Jochen
Это действительно смешно. Я искал очень похожий вопрос и нашел ваш ответ, который напрямую связан с моим вопросом: P – greggorob64