您知道当DataContext更改(未替换,仅修改)时,TextBox如何修改其内容?好吧,我希望像UI一样得到通知,在DataContext上有某种事件。到目前为止,我还没有找到一种方法来做到这一点,我即将放弃并简单地订阅我的DataContext中每个INotifyPropertyChanged
上的所有事件。我知道DataContextChanged
类中有DataContextChanging
/ Window
,但到目前为止我要么无法使用它,要么只在DataContext中触发被完全替换。有没有办法做到这一点?
答案 0 :(得分:0)
想想被问到的是什么。如果数据上下文中的任何属性发生更改,则会触发常规事件。
哪些流程可以执行外部?
分散式解决方案
属性不提供更改通知,除非他们自己手动编程这样做;因此INotifyPropertyChange
是正常使用的途径。
集中解决方案
否则,单独的管理员需要反映实例,并拍摄所有属性的快照。然后在计时器上,管理器将轮询实例以获取当前快照,并将该快照与旧快照进行比较。如果检测到更改,则可以触发事件,并且新快照将替换旧的快照。
答案 1 :(得分:0)
DataContextChanged
事件。我相信你走的是正确的道路,在你的ViewModel中,你需要订阅NotifyPropertyChanged
。在事件处理程序中,您可以像这样打开相应的属性:
private void OnNotifyPropertyChanged(object sender, PropertyChangedEventArgs e)
{
switch (e.Property)
{
case "Property1":
break;
case "Property2":
break;
case "Property3":
break;
}
}