当属性值在其他地方更改时更新 PropertyGrid 中的属性?

发布于 2024-09-13 07:13:53 字数 290 浏览 8 评论 0原文

我们有一个使用 PropertyGrid 的 SelectedObject 属性分配给 PropertyGrid 的对象。该对象包含一些属性,这些属性由不同位置的代码更新。出于本示例的目的,假设一个更新是简单的更新(即:由以下代码引起 - Person.FirstName =“Gareth”),而另一个更新则稍微复杂一些;从开始时间算起的持续时间(即:Person.AgeInSeconds)。

有谁知道最简单的方法是什么,当属性值发生变化时,在 PropertyGrid 中自动更新这些属性的值?

预先感谢,

尼克

We have an object that is assigned to a PropertyGrid using the SelectedObject property of the PropertyGrid. This object contains a few properties which get updated by code in various places. For the purpose of this example, assume one is a simple update (ie: caused by the following code - Person.FirstName = "Gareth"), and that another is a bit more complex; a duration from a start time (ie: Person.AgeInSeconds).

Does anyone know what the simplest method is to have the value of these property updated automatically in a PropertyGrid, when the value of the properties change?

Thanks in advance,

Nick

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

倚栏听风 2024-09-20 07:13:53

尝试将 INotifyPropertyChanged 接口添加到您的对象,然后在设置器中更新属性时引发该事件。我不确定 PropertyGrid 是否会查找并侦听此接口,但值得一试。

如果没有,您始终可以自己执行此操作。因此,每次分配给 SelectedObject 时,您都会挂钩 INotifyPropertyChanged 接口更新事件,并且每当触发时,您都会刷新 PropertyGrid。当它从 SelectedObject 中删除时,您就删除了事件挂钩。

Try adding the INotifyPropertyChanged interface to your object and then raising the event when a property is updated in the setter. I am not sure if the PropertyGrid looks for and listens to this interface but it is worth a try.

If not you can always do this yourself. So each time you assign to SelectedObject you hook the INotifyPropertyChanged interface update event and whenever fire you get the PropertyGrid to refresh. When it is removed from SelectedObject you remove the event hook.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文