WPF:绑定到一个对象的属性;当对象改变时会发生什么?假设您有一个具有属性的对象和一个绑定到该对象属性的控件。当这个对象改变时会发生什么?例如,ViewModel:publicclassTheViewModel:INotifyPropertyChanged{privateTheObjectClasstheObject;publicTheObjectClassTheObject{get{返回theObject;}设置{theObject=值;OnPropertyChanged("TheObject");}}}对象的类:publicclassTheObjectClass:INotifyPropertyChanged{privateThePropertyClasstheProperty;publicThePropertyClassTheProperty{get{返回theProperty;}设置{theProperty=值;OnPropertyChanged("TheProperty");}}}酒店类:publicclassThePropertyClass:INotifyPropertyChanged{privateobjectobjectToBindTo;返回对象绑定到;}设置{objectToBindTo=值;OnPropertyChanged("ObjectToBindTo");然后在一个窗口中(ViewModel设置为它的DataContext)你有一个控件绑定到这个对象,比如:然后在某个地方重置ViewModel.TheObject(绑定后):ViewModel.TheObject=newTheObjectClass();在我的测试中(不是这个代码,这只是我应用程序中代码的一个简化示例),似乎有时绑定仍然存在,有时它停止工作。我应该在这里发生什么?在我看来,当父对象被实例化为另一个对象时,属性绑定会中断,这似乎是合乎逻辑的,但有时它似乎仍然存在,这让我感到困惑。通常,这是受支持的操作,绑定应该始终“有效”。WPF绑定系统在TheObject上看到属性更改通知,应该将绑定重置为新的子对象。在实践中,绑定偶尔会失效,但这通常是因为某个时间点,链中的一个对象变为空,然后打破了绑定。如果一个对象变为null,WPF实际上会取消PropertyChanged调用的取消(因为没有可侦听的对象),并且永远不会看到正在设置的新值,这反过来会阻止它运行。以上是C#学习教程:WPF:绑定到对象的属性;当对象改变时会发生什么?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
