立即更新UserControl中的所有绑定

时间:2009-04-27 16:57:23

标签: wpf data-binding wpf-controls custom-controls

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

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

但我得null作为GetBindingExpression(..)方法的结果,我想知道我是否使用了这个错误。

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

2 个答案:

答案 0 :(得分:18)

好吧,你可以重新分配DataContext

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

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

答案 1 :(得分:1)

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