Eri*_*tas 5 c# propertygrid propertydescriptor
我正在使用PropertyGrid来显示我的对象的属性.但是,我还允许用户创建自己的属性,并为这些自定义属性设置值.每个可以拥有这些自定义属性的对象都有一个Dictionary集合,其中字符串是标识属性的唯一键,Object是基本类型的值(string,bool,int等...)
我创建了一个自定义PropertyDescriptor,其中包含get和set方法,用于检查Dictionary以查找匹配的键,或者分别使用匹配的键创建/覆盖该值.
但是,我还希望让用户能够清除属性,从而完全从字典中删除其条目.我将代码放在我的自定义PropertyDescriptor的ResetValue覆盖方法中,但是我没有看到任何通过PropertyGrid接口来调用它的方法?它似乎不是一个上下文菜单选项或类似的东西.
因此,如果我有一个带有自定义ResetValue方法的自定义PropertyDescriptor,我如何从PropertyGrid中实际唤起该方法?
我认为实现此目的的最简单方法是将上下文菜单添加到属性网格,其中包含菜单项“重置”,然后像这样处理其单击事件:
private void resetToolStripMenuItem_Click(object sender, EventArgs e)
{
PropertyDescriptor pd = propGrid.SelectedGridItem.PropertyDescriptor;
pd.ResetValue(propGrid.SelectedObject);
}
Run Code Online (Sandbox Code Playgroud)
我认为 Visual Studio 就是这样做的。
| 归档时间: |
|
| 查看次数: |
3965 次 |
| 最近记录: |