2

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

4

1 回答 1

0

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

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

于 2013-05-29T08:19:20.350 回答