Visual Studio属性网格:接受Int属性的空字符串

时间:2012-11-01 15:10:28

标签: c# visual-studio propertygrid

我有一个包含各种值类型的属性网格,包括整数。某些int属性具有DefaultValueAttribute,指定默认值,例如, -1

如果用户输入空字符串,Visual Studio会抱怨“属性值无效;''无法转换为Int32”。无论如何将空字符串解释为恢复为默认值?

我们实现了一个自定义PropertyDescriptor,但在 VS转换为对象值类型之后,SetValue()方法被称为

1 个答案:

答案 0 :(得分:1)

创建Int32Converter的派生类并将其附加到您的媒体资源中。覆盖其ConvertFrom方法以插入所需的行为。最理想的是,您将使用设置为PropertyDescriptor的DefaultAttribute来使其可重用。

如果您想了解BaseNumberConverter.ConvertFrom是如何完成的,请使用反射器工具。