我有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對象做有A和B的值相同,我只看到的東西這樣PropertyGrid中:
…
MyNestedClassObject |
A | 1
B | 2
…
我知道的PropertyGrid旨在顯示多個對象的唯一共同的屬性,什麼是對的子屬性a和b如此。但是爲什麼可擴展屬性的所謂「typeconverter」(或父)行確實有一個空值部分,儘管子屬性a和b對於所有對象都是相同的?
任何人都可以對此有所瞭解和/或可以幫助我解決這個問題嗎?
提前感謝
約亨
這真的很有趣。我在Google上搜索了一個非常類似的問題,並發現你的反應直接與我的問題聯繫在一起:P – greggorob64