如何在Property Grid中添加嵌套的Properties

时间:2012-07-11 04:17:20

标签: c# wpf

如何在WPF属性网格中添加嵌套属性。

我想在Font下添加Font of Font属性,这是Style的子项。如何通过嵌套属性获取字体属性列表?

Style
  Font
    Font Family
    Font Size
    Font Style ... and so on..

 internal class Properties()
 {
  public Properties()
    {
        this.FontPropertiesCollection = new List<FontProperties>()
        {
            ????
         }
     }
    [CategoryAttribute("Font")]
    [DisplayName("Font")]
    public List<FontProperties> FontPropertiesCollection
    { 
        get; 
        set; 
    }
 }


internal class FontProperties
{
    [CategoryAttribute("Font")]
    [DisplayNameAttribute("Font Family")]
    public string FontFamily
    {
        get
        {
            return this.fontFamily;
        }
        set
        {
            if (value != this.fontFamily)
            {
                this.fontFamily= value;
                this.OnPropertyChanged("FontFamily");
            }
        }
    }

       ..... and so on    

1 个答案:

答案 0 :(得分:1)

使用Category属性只能获得一个嵌套级别。

我能看到创建你想要的东西的唯一方法是implementing a UI Type Editor

您需要构建所有UI。

一般情况下,我会建议不要这样做,因为这不是用户期望的内容,当用户按字母顺序对属性进行排序时,会弄乱用户的想法。