INotifyPropertyChanged属性是一个类?

时间:2014-01-13 04:07:18

标签: c# winforms

如果我注册以获得有关房产变更的通知,则只会在重新分配实际房产时通知。因此,如果我有一个属于文本框的属性,它将不会通知文本框的文本是否发生变化,对吧?有没有办法让它以这种方式工作?

2 个答案:

答案 0 :(得分:1)

如果您对某个对象的特定属性感兴趣,那么您应该在值本身上使用INotifyPropertyChanged之类的机制。不幸的是,虽然在这种情况下来自WinForms的TextBox没有实现INotifyPropertyChanged。要侦听其Text属性的更改,您需要订阅TextChanged事件

答案 1 :(得分:0)

我很难想象为什么类会暴露类型为TextBox的属性。无论如何,如果你最终得到这样的设计,你可以简单地添加两个属性,每个属性用于TextBox本身和里面的文本,然后听取TextBox的{​​{1}}事件和火你的TextChanged就可以了。

但我觉得你需要重新思考你的方法。如果您的类公开了NotifyPropertyChanged类型的属性,那么实际上应该有一些地方可以将一个新的TextBox实际分配给一个类实例,而上层则会监听此更改。但我认为情况并非如此。您几乎肯定会在寻找文本更改,因此应该公开TextBox类型的属性。