【发布时间】:2014-02-13 09:47:01
【问题描述】:
- 我使用 PropertyGrid 允许最终用户编辑类
ClassA中的属性 - 这个类有一个
List<ClassB>属性。 - 对于
List<ClassB>属性,PropertyGrid 显示(Collection)和一个带有3 个点的按钮,该按钮会打开一个如下所示的新窗口(取自another SO post)。
-
我想自定义左侧的
Members:DisplayName,所以对于ClassB,我已经覆盖了ToString()方法public class ClassB { public string Name { get; set; } public TimeSpan Value { get; set; } public override ToString() { return String.Format("{0} ({1})", this.Name, this.Value); } }
现在问题来了:
- 如果 Name 为空,则按预期显示
(00:00:00)。 - 如果我将名称更改为测试,我希望它显示
Test (00:00:00),但它只显示Test - 如果我将属性名称重命名为其他名称,它会按预期工作。
我想这是一个特殊的约定,如果一个类有一个属性 Name 并且值不为 null 或空,控件会显示这个属性而不是名称。
但是,我还没有找到可以验证这一点的文档,而且我不知道如何改变这种行为。我如何做到这一点?
注意:更改属性名称不是一种选择。
【问题讨论】:
标签: c# .net winforms propertygrid