XCeed PropertyGrid:如何设置正确的标题?

时间:2016-02-25 14:00:20

标签: wpf xceed

我已经实现了ICustomTypeDescriptor来为XCeed Propertygrid提供我的自定义描述符。

public class MyDescriptor : ICustomTypeDescriptor, IDisposable
{
    public MyDescriptor(IMyInterface metadata)
    {
         /* Use object metadata to build the type descriptor */
    }
}

这很好,除了PropertyGrid有标题“MyDescriptor”。我已经尝试过实现GetAttributes()

public AttributeCollection GetAttributes()
{
    string theRightTitle = metaData.GetTitle(); // Dynamic title, differs depending on metaData object provided in constructor.
    Attribute[] attributes = new Attribute[] {new DescriptionAttribute(theRightTitle) };
    return new AttributeCollection(attributes);
}

但这不起作用......如何确保网格标题正确?

修改:所以我需要的是一种动态方式来生成PropertyGrid的标题。我已经更新了上面的代码示例以反映这一点。

3 个答案:

答案 0 :(得分:1)

我使用DisplayName属性修饰了我的类并且工作正常。

[DisplayName("My Custom Title")]
public class MyConfiguration
{ ... }

enter image description here

答案 1 :(得分:1)

您在PropertyGrid顶部看到的不是标题,它是TypeName以及空标题。如果要在TypeName旁边看到标题,请确保您的类包含“Name”属性。如果没有“Name”属性,则会添加一个空字符串作为标题。

public class MyDescriptor : ICustomTypeDescriptor
{
    public string Name
    {
      get
      {
        return "AAA";
      }
    }
    . . .
}

答案 2 :(得分:0)

或者您可以使用静态和动态信息的组合,如: -

[DisplayName("Data")]
public class MyDescriptor : ICustomTypeDescriptor
{
    public string Name
    {
      get
      {
        return " - My Title";
      }
    }
    . . .
}

属性网格的标题将是“数据 - 我的标题”