立即更新UserControl中的所有绑定

Ale*_*dra 7 data-binding wpf custom-controls wpf-controls

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

BindingOperations.GetBindingExpressionBase(this, UserControl.DataContextProperty).UpdateTarget();
Run Code Online (Sandbox Code Playgroud)

但是我得到nullGetBindingExpression(..)方法的结果,我想知道我是否使用了这个错误.

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

Ken*_*art 18

好吧,你可以重新分配DataContext:

var dataContext = DataContext;
DataContext = null;
DataContext = dataContext;
Run Code Online (Sandbox Code Playgroud)

仅供参考,将财产重置为其值(即DataContext = DataContext)将不起作用.

  • 有没有更优雅的WPF方式呢?WPF不应该支持某种绑定刷新机制吗? (2认同)
  • 最神秘的是没有第二行,刷新就不会发生.无论你如何改变DataContext属性,似乎没有任何反应,除非它被设置为null.谢谢你的回答. (2认同)