数据上下文更改后的绑定问题

时间:2013-05-29 07:58:17

标签: wpf binding datacontext

我有一个奇怪的问题:我有一个WPF屏幕,我有一个扩展的TextBox,在某些情况下会进行一些转换,并且该属性绑定到视图模型上的属性。更改数据上下文后,将重新评估转换。重新评估时,我的扩展TextBox具有新数据上下文,但BindingOperations.GetBindingExpression(textBox, dpproperty).DataItem仍然是旧数据上下文。 在改变数据上下文后,我所做的转换可能还为时过早?通常数据上下文不会更改为整个屏幕,因此要重新评估绑定? 谢谢!

1 个答案:

答案 0 :(得分:0)

问题是,视图的绑定没有注意到DataContext已更改。所以他们仍在“寻找”首先分配的VM。

因此,解决此问题的最佳方法是更改​​分配为DataContext的VM中的数据,而不是分配另一个实例。由于VM应该实现INotifyPropertyChanged,绑定将自动更新。