Ree*_*sey 11
但是仅使用get {},由于必须执行要检查的方法,因此无法检测是否有新值或不同值.
问题归结为:什么改变了财产?更改属性的方法应该使用属性NotifyPropertyChanged
的名称调用您的属性,这将导致WPF重新获取值并更新用户界面.
WPF不关心那里的PropertyChanged
事件被提出-它只是监听它,并根据需要刷新绑定.
编辑以回应评论:
听起来这可能是对您的Model类执行某些操作的结果.在这种情况下,通常您知道一个或多个属性可能会更改,但不一定是哪些属性.如果您的模型实现了INotifyPropertyChanged
,您可以订阅它并通过您的NotifyPropertyChanged
方法将通知"冒泡"到UI .但是,如果没有,还有另一种选择.
如果你知道一个或多个属性可能会改变,你可以提出一个PropertyChanged
事件以string.Empty
作为PropertyName
在EventArgs的.这将导致WPF刷新所有绑定属性.这可能只是在你的代码中加入这样的东西:
this.Model.DoSomething(); // This will change 1+ properties
this.NotifyPropertyChanged(string.Empty); // Refresh our entire UI
Run Code Online (Sandbox Code Playgroud)
但是,我不建议在任何地方都这样做,因为它会增加开销 - 但如果您在执行操作时不知道哪些属性会发生变化,那么它通常是最干净的解决方案.