我可以在 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/