2

我有以下用于 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类型的任何地方。知道这里发生了什么吗?

4

0 回答 0