在 WPF 中使用依赖属性
我有一个从托管包装器公开的只读 .NET 属性,该包装器获取数据库的名称,假设属性名称是 DBName
。 DBName
可能会有所不同,具体取决于连接到 WPF 应用程序的数据库。此属性 getter 和 setter 也驻留在托管 .NET 包装器内。我在我的 WPF 项目中使用 this(DBName) 属性。
我想在此(DBName).NET 属性上创建一个依赖属性,每当此 DBName
更改时都会收到通知。我想在 WPF 应用程序的状态栏上显示 DBName
。
我可以这样做吗?
I have a readonly .NET property exposed from a managed wrapper which gets the name of the database, let's say the property name is DBName
. The DBName
may vary depending upon the database connected to the WPF application. This property getter and setter also resides inside the managed .NET wrapper. I am using this(DBName) property in my WPF project.
I want to create a dependency property over this(DBName) .NET property which will be notified whenever this DBName
changes. I want to show the DBName
on my status bar in the WPF application.
Can I do that?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
是的,
您需要在包装器中实现 INotifyPropertyChanged并在每次更改
DBName
时调用PropertyChanged("DBName")
。更新
我认为这个问题可以通过强制执行一个简单的规则来解决:始终通过属性设置。如果您强制执行这一点,那么其他程序员就不会犯忘记调用
PropertyChanged("DBName")
的错误。以这种方式使用代码意味着每次更新 DBName 时都会调用该事件。
Yes
You'll need to implement INotifyPropertyChanged in your wrapper and call
PropertyChanged("DBName")
each timeDBName
is changed.Update
I think this issue can be solved by enforcing a simple rule: always set via the property. If you enforce that, then other programmers won't make the mistake of forgetting to call
PropertyChanged("DBName")
.Using the code this way means that the event gets called every time the DBName is updated.