2014-02-07 56 views
2

我使用擴展WPF工具PropertyGrid中,讓用戶在我的應用程序填寫配置。WPF工具包的PropertyGrid ExpandableObject屬性不顯示嵌套類正確

一切正常,只是當我嘗試包括ExpandableObject屬性添加一個嵌套類罰款。

下面是一個例子:

public class TestClassConfig 
{ 
    public string ExcelName { get; set; } 

    public string ResultFolder { get; set; } 

    [ExpandableObject] 
    public ExpandableTest OtherClass { get; set; } 
} 

public class ExpandableTest 
{ 
    public string Test1 { get; set; } 
    public string Test2 { get; set; } 
} 

我不能發佈的結果(第一篇文章)的圖像,所以我會形容它:出現「OtherClass」屬性,但我看不到嵌套的類屬性(Test1和Test2)不能編輯它。

PropertyGrid Documentation中,它表示具有ExpandableObject屬性的屬性「此屬性是一個複雜屬性,並且沒有默認編輯器。」

是否意味着我必須創建一個自定義編輯器每次我想要一個嵌套類添加到我的屬性網格?

感謝您的回答!

回答

1

所以,這將是相當有用知道你們是如何在XAML綁定。 我不喜歡這樣寫道:

public class TestClassConfig 
{ 
    [Category("Cat1")] 
    public string ExcelName { get; set; } 

    [Category("Cat1")] 
    public string ResultFolder { get; set; } 

    [Category("CatWithExpandObj")] 
    [ExpandableObject] 
    public ExpandableTest OtherClass { get; set; } 
} 

public class ExpandableTest 
{ 
    public string Test1 { get; set; } 
    public string Test2 { get; set; } 
} 

而在XAML你桅杆綁定Selected object

<xctk:PropertyGrid SelectedObject="{Binding TestClassConfig}"/> 
0

我知道這是一個遲到的回答,但是,確保屬性的值不爲空。換句話說,寫的是這樣的:

public class TestClassConfig 
{ 
    [Category("CatWithExpandObj")] 
    [ExpandableObject] 
    public ExpandableTest OtherClass { get; set; } = new ExpandableTest(); 
}