c# - 更新 PropertyGrid

标签 c# winforms data-binding propertygrid inotifypropertychanged

当 SelectedObject 属性中的对象发生变化时,如何让属性网格自动更新?我已经尝试在我的类中实现 INotifyPropertyChanged,但属性网格实际上并不显示背景中对象的新属性,直到我单击它。

我试过直接订阅对象的 PropertyChanged 事件,并在 PropertyGrid 被调用时调用它的 Refresh() 方法。但是我的一些属性是相关的。这意味着更改一个属性可能会引发多个 PropertyChanged 事件。这似乎工作正常,但我仍然想知道是否有通过 DataBinding 执行此操作的更简洁的方法。此外,我想避免在用户仅更新单个属性后多次刷新控件。

那么有没有办法让 PropertyGrid 从 PropertyChanged 事件中刷新?

最佳答案

尝试将 RefreshProperties 属性添加到每个具有依赖性的属性:

[RefreshProperties(RefreshProperties.All)]

现在,每次此属性更改时 - 它会自动刷新其他字段。 与每次调用属性网格的“Refresh()”相比,这是一种更简洁的方法。

关于c# - 更新 PropertyGrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3120496/

相关文章:

wpf - WPF 中的 IWin32Window

wpf - 如何从 StreamGeometry 绑定(bind)路径数据

在非根 ViewGroup 中使用 include 标记时,Android 数据绑定(bind)会使应用程序崩溃

android - MvvmCross,未调用特定于平台的值转换器

c# - 如何理解 ASP.Net 中的基本开场白,页面标签?

c# - 如何删除文本文件的前 "X"行?

C# - MessageBox - 资源和换行符中的消息本地化

c# - 强制调整 DataGridView 列的大小

c# - 对于 Windows Embedded Standard 7 上的 WinForms 应用程序,如何在 c# 中检测设备是否启用了触摸

c# - 从数据表中选择不同的记录