我有以下用于 PropertyGrid 的自定义类。举个例子:
[DefaultPropertyAttribute("SaveOnClose")]
public class MyData
{
private UInt32 _MaximumUploadFileSizeKB = _k_MaximumUploadFileSizeKB;
const UInt32 _k_MaximumUploadFileSizeKB = 262144;
[CategoryAttribute("Server Settings"),
DefaultValueAttribute(_k_MaximumUploadFileSizeKB),
DescriptionAttribute("The maximum allowed upload file size in KBytes.")]
public UInt32 MaximumUploadFileSizeKB
{
get { return _MaximumUploadFileSizeKB; }
set
{
_MaximumUploadFileSizeKB = value > 0 ? value : 1;
}
}
}
PropertyGrid 的初始化如下:
PropertyGrid propertyGrid = new PropertyGrid();
propertyGrid.SelectedObject = new MyData();
那行得通,但是当我尝试将当前选定的属性网格项设置为默认值时:
void ResetFieldToDefault()
{
propertyGrid.ResetSelectedProperty(); //Throws exception
}
它抛出这个异常:
“System.Int64”类型的对象无法转换为“System.UInt32”类型。
我在我的代码中没有看到我会使用Int64
类型的任何地方。知道这里发生了什么吗?