当 SelectedObject 属性中的对象发生变化时,如何让属性网格自动更新?我已经尝试在我的类中实现 INotifyPropertyChanged,但属性网格实际上并不显示背景中对象的新属性,直到我单击它。
我试过直接订阅对象的 PropertyChanged 事件,并在 PropertyGrid 被调用时调用它的 Refresh() 方法。但是我的一些属性是相关的。这意味着更改一个属性可能会引发多个 PropertyChanged 事件。这似乎工作正常,但我仍然想知道是否有通过 DataBinding 执行此操作的更简洁的方法。此外,我想避免在用户仅更新单个属性后多次刷新控件。
那么有没有办法让 PropertyGrid 从 PropertyChanged 事件中刷新?
最佳答案
尝试将 RefreshProperties 属性添加到每个具有依赖性的属性:
[RefreshProperties(RefreshProperties.All)]
现在,每次此属性更改时 - 它会自动刷新其他字段。 与每次调用属性网格的“Refresh()”相比,这是一种更简洁的方法。
关于c# - 更新 PropertyGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120496/