.net - 如何获取对 PropertyValueChanged 事件中更改的对象的引用?

标签 .net propertygrid

我可以在 PropertyGrid 上为 PropertyValueChanged 事件添加处理程序。如果用户更改 SelectedObject 的属性,则效果很好。但是,如果 SelectedObject 具有本身就是对象的属性,则用户还可以编辑该对象的属性。我仍然收到 PropertyValueChanged 事件,这很好,但我找不到一种方法来获取对它们已更改的对象的引用。

在监 window 口中查看 PropertyValueChangedEventArgs 参数的 ChangedItem 属性,我可以看到 PropertyDescriptorGridEntry 中有一个 Instance 属性,但我似乎无法从我的代码访问它。

任何建议表示赞赏。

最佳答案

当引发 PropertyValueChanged 事件时,它具有关联的 PropertyValueChangedEventArgs。该对象有一个 ChangedItem 成员,用于保存已更改的 GridItem。因此,如果您想对更改后的项目执行某些操作,您的处理程序可能如下所示:

private void OnPropertyValueChanged(Object sender, PropertyValueChangedEventArgs args) {
    Console.WriteLine($"The changed item was {args.ChangedItem}");
}

关于.net - 如何获取对 PropertyValueChanged 事件中更改的对象的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65079411/

相关文章:

c# - 如何在 PropertyGrid 中自定义绘制 GridItem?

.net - 加载程序集并在另一个应用程序域中对其类型应用谓词

.net - azure 应用程序服务从 web.debug.config 读取自定义环境变量而不是配置菜单变量

c# - 从日期/时间字符串中删除时间

.net - 是否可以向 ExpandoObject 实例的生成成员添加属性?

c# - 在 PropertyGrid 上设置 SelectedTab

winforms - 在运行时(动态)将 Editor/EditorAttribute 添加到对象的属性

java - 是否可以将我的 ASP.NET 应用程序捆绑到一个可自行执行的 Web 应用程序中? (我知道Java可以)

.net - 使用 ASP.NET Core 的 Angular 项目模板。 API测试

c# - PropertyGrid 验证