我有一个奇怪的问题:我有一个WPF屏幕,我有一个扩展的TextBox
,在某些情况下会进行一些转换,并且该属性绑定到视图模型上的属性。更改数据上下文后,将重新评估转换。重新评估时,我的扩展TextBox
具有新数据上下文,但BindingOperations.GetBindingExpression(textBox, dpproperty).DataItem
仍然是旧数据上下文。
在改变数据上下文后,我所做的转换可能还为时过早?通常数据上下文不会更改为整个屏幕,因此要重新评估绑定?
谢谢!
答案 0 :(得分:0)
问题是,视图的绑定没有注意到DataContext
已更改。所以他们仍在“寻找”首先分配的VM。
因此,解决此问题的最佳方法是更改分配为DataContext
的VM中的数据,而不是分配另一个实例。由于VM应该实现INotifyPropertyChanged
,绑定将自动更新。