7

当 UserControl 的可见性更改为 Visible 时,我需要更新其上的所有绑定。几乎我所有的绑定都绑定到用​​户控件的 DataContext 属性,所以我正在尝试更新该绑定的目标:

BindingOperations.GetBindingExpressionBase(this, UserControl.DataContextProperty).UpdateTarget();

但是我得到null了方法的结果,GetBindingExpression(..)我想知道我是否用错了。

此外,是否有任何其他好方法来刷新控件上的所有绑定(使用 DataContext 作为源)。

4

2 回答 2

19

好吧,您可以重新分配DataContext

var dataContext = DataContext;
DataContext = null;
DataContext = dataContext;

仅供参考,将属性重置为其值(即DataContext = DataContext)将不起作用。

于 2009-04-27T17:36:06.817 回答
1

您在错误的属性上使用了 BindingOperations.GetBindingExpressionBase 方法。您必须在绑定到 DataContext 属性的属性上使用它,而不是 DataContext 属性本身。

于 2011-03-15T18:28:26.693 回答