如果我写了一个WinForms可视化控件,并想把它的一个属性变成一个值型的 无效我是否需要为它创建一个特殊的类型转换器或编辑器来使它在VS属性网格中完全可用?
例如,.NET框架提供了 NullableConverter 类。我是否需要将它通过 TypeConverterAttribute?
我试着把其中一个 int
属性,以 int?
在属性网格中,这个属性似乎工作正常。我可以指定一个数值,或者清除这个属性,使其再次为空。
属性网格使用 类型描述符 来获取它的转换器信息。因此,例如,如果你有这个类。
public class MyClass
{
public int? NullableInteger { get; set; }
}
用这段代码:
// get first property's type converter
var cv = TypeDescriptor.GetProperties(typeof(MyClass))[0].Converter;
你会得到 TypeConverter
对于 NullableInteger
财产,这已经是 NullableConverter
.
所以,你不必手动声明它。