2

私は奇妙な問題を抱えています.WPF画面があり、TextBox場合によってはいくつかの変換を行う拡張があり、そのプロパティはビューモデルのプロパティにバインドされています。データ コンテキストが変更されると、変換が再評価されます。再評価すると、拡張TextBoxには新しいデータ コンテキストがありますがBindingOperations.GetBindingExpression(textBox, dpproperty).DataItem、古いデータ コンテキストのままです。データコンテキストを変更した後、私が行う変換は早すぎるのでしょうか? 通常、データ コンテキストは画面全体に変更されないため、バインディングを再評価する必要がありますか? ありがとう!

4

1 に答える 1

0

問題は、ビューのバインディングDataContextが変更されたことに気付かないことです。そのため、最初に割り当てられた VM を引き続き「検索」しています。

DataContextしたがって、この問題を解決する最善の方法は、別のインスタンスを割り当てるのではなく、割り当てられた VM のデータを変更することです。VM はバインディングを実装INotifyPropertyChangedする必要があるため、バインディングは自動的に更新されます。

于 2013-05-29T08:19:20.350 に答える