7

表示がVisibleに変わったら、UserControlのすべてのバインディングを更新する必要があります。ほとんどすべてのバインディングがユーザーコントロールの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 に答える