WinForms 组件的 Nullable 属性的 NullableConverter
NullableConverter for Nullable properties of WinForms component
如果我编写一个 WinForms 可视化控件并希望将其属性之一设为值类型 nullable,我是否需要为其创建一个特殊的类型转换器或编辑器以使其在VS 属性 网格?
例如,.NET Framework 提供 NullableConverter class. Do I need to attach it to my nullable property via the TypeConverterAttribute?
我试图将 int
属性之一转换为 int?
,并且 属性 在 属性 网格中似乎工作正常。我可以指定一个数值或清除此 属性 以使其再次为空。
属性 网格使用 TypeDescriptor 获取其转换器信息。例如,如果你有这个 class:
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
。
因此,您不必手动声明它。
如果我编写一个 WinForms 可视化控件并希望将其属性之一设为值类型 nullable,我是否需要为其创建一个特殊的类型转换器或编辑器以使其在VS 属性 网格?
例如,.NET Framework 提供 NullableConverter class. Do I need to attach it to my nullable property via the TypeConverterAttribute?
我试图将 int
属性之一转换为 int?
,并且 属性 在 属性 网格中似乎工作正常。我可以指定一个数值或清除此 属性 以使其再次为空。
属性 网格使用 TypeDescriptor 获取其转换器信息。例如,如果你有这个 class:
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
。
因此,您不必手动声明它。