在C(.NET 2.0)中的一个项目中,我使用了一个属性网格。此属性网格显示通过SOAP从PHP后端检索到的对象。有些对象包含字符串属性,其中空字符串的含义与空字符串的含义不同。SOAP调用返回的对象示例可能是:
SomeObject {
PropertyA = "Foo"
PropertyB = "Bar"
PropertyC = Null
}
只要我不在属性网格中“触摸”属性c,属性c的值将保持为空。当我输入“foobar”作为值,然后清除propertyc的propertygrid中的文本时,该值将等于空字符串。这对我来说很好;用户应该能够“输入”一个空字符串。但我也希望用户能够指定一个“空”值。
我设想的方法是,用户可以右键单击属性值,然后弹出一个上下文菜单,其中包含一个“清除值”选项,该选项将值设置为空。
重要:
我愿意
不
想要使用像
一串
“null”或“magix123”指定值需要为空。当然,后端可以解释这些值并存储实际的空值,但是这个“解决方案”除了简单的脏之外,不需要,因为它需要在处理“魔力值”的地方更改大量代码。
理想情况下,PropertyGrid还将空值显示为(“灰色”)“”,以便用户可以看到空字符串和空值之间的差异。
有人知道如何处理这种情况吗?执行(.net 2.0!)PropertyGrid允许我做这种事情吗?那我该怎么办呢?我是否需要创建从PropertyGrid派生的自己的用户控件,或者PropertyGrid是否有一些我错过的函数?