views:

206

answers:

1

I need to update all the bindings on my UserControl when its visibility changes to Visible. Pretty much all my bindings are bound to the DataContext property of the user control so I'm trying to update the target of that binding:

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

But I get null as the result of GetBindingExpression(..) method and I'm wondering if I'm using this wrong.

Also, is there any other good way to refresh all bindings on the control (which use DataContext as the source).

+2  A: 

Well, you could just re-assign the DataContext:

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

HTH, Kent

Kent Boogaart
OMG, you are a genius! Why, WHY haven't I thought of this?!Thanks, this worked :)
Alexandra
Is there a more graceful WPF'y way of doing this? Shouldn't WPF support some sort of binding refresh mechanism?
BrettRobi