0

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

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

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

4

1 回答 1

1

创建一个派生类Int32Converter并将其附加到您的属性。覆盖其ConvertFrom方法以插入您想要的行为。最佳情况下,您将使用设置为 PropertyDescriptor 的 DefaultAttribute 以使其可重用。

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

于 2012-11-01T18:26:32.233 回答