我正试图找出正确的方法来做到这一点。
我有一个WinForms应用程序,它使用PropertyGrid作为控件之一;我正在使用.SelectedObject属性来指定适当的对象来显示。
的属性PropertyGrid对此对象的类属性使用声明的属性来确定可视内容,例如:如果该项目可见(可浏览),如果该属性需要备用UI呈现(例如,下拉列表与文本框)。
示例:
[TypeConverter(typeof(MyTypeConverter))]
public string MyAttribute
{
...
}
[Browsable(false)]
public string HiddenAttribute
{
...
}
但是,我不喜欢这些属性的混合,这些属性与我的其他不可知数据类中的UI密切相关。
在不影响我的数据类的情况下,为PropertyGrid声明这些必要属性的最佳方法是什么?
答案 0 :(得分:0)
我有两个选择建议:
使用部分类将属性放在单独的文件中
或为您的属性创建一个单独的类
我个人更喜欢选项#2,但要完全实现它,您需要一种机制来将属性对象与主对象相关联。执行此操作的最通用方法是定义将返回属性对象的接口,并在主对象中实现该接口。然后修改在PropertyGrid上设置.SelectedObject属性的代码,以检查该接口,并在实现时使用属性对象。