Eri*_*tas 8 c# data-binding propertygrid inotifypropertychanged winforms
当SelectedObject属性中的对象发生更改时,如何自动更新属性网格?我已经尝试在我的类中实现INotifyPropertyChanged,但属性网格实际上并没有在后台显示对象的新属性,直到我点击它.
我已经尝试直接订阅我的对象的PropertyChanged事件,并在调用它时调用PropertyGrid的Refresh()方法.但是我的一些房产是相关的.更改一个属性的含义可能会引发多个PropertyChanged事件.这似乎工作正常,但我仍然想知道是否有更简洁的方法通过DataBinding这样做.另外,我想在用户仅更新单个属性后避免多次使用控件Refresh.
那么有没有办法让PropertyGrid从PropertyChanged事件中刷新?
Nis*_*sim 31
尝试将RefreshProperties属性添加到具有依赖项的每个属性:
[RefreshProperties(RefreshProperties.All)]
Run Code Online (Sandbox Code Playgroud)
现在,每次此属性更改时 - 它将自动刷新其他字段.这比每次调用属性网格的"Refresh()"要简洁得多.
我不知道是否有内置的方法可以做到这一点,但如果您想避免多次调用Refresh相关属性,这里有一个建议:
当PropertyChanged事件发生时,启动计时器。如果该事件在计时器到期之前再次发生,则不执行任何操作。如果Tick发生定时器,刷新PropertyGrid并停止定时器
| 归档时间: |
|
| 查看次数: |
9845 次 |
| 最近记录: |