0

私の WPF アプリケーションでUserControlsは、それぞれ独自のViewModelを持ついくつかを作成しました。ViewModelはすべて、PageViewModelBase変数 " _context " を含むに基づいています。

UserControls、独自のWizardViewModelを持つウィザード ダイアログのページとして表示されます。WizardViewModel_masterContextには、コンストラクターを介してそれぞれの子 ViewModel に渡される変数があります。例えば、

Child1ViewModel vm = new Child1ViewModel(_masterContext);

および Child1ViewModel のコンストラクター:

public Child1ViewModel(Context context) : base(context)

および PageViewModelBase :

protected PageViewModelBase(Context context)
{
    _context = context;
}

私の意図は、各 ChildViewModels を介してアクセスできる_masterContext を 1 つだけ持つことです。そして、各子ビューはこれにバインドし、マスター コンテキストのさまざまなフィールドに値を提供できます。

TextBox.Textただし、childView1 から childView2 に切り替えるたびに、バインド先のフィールドが "" にリセットされるという問題が発生しています。これが私の MMI コードによるものなのか、それともアプリケーションに _masterContext のインスタンスが複数あるのか、つまり、上記のメソッドが正常に機能していないのかどうかはわかりません。

何が原因でしょうか?

4

1 に答える 1

0

値をリセットしている犯人を見つけることができました。TextBox の TextChanged イベントを処理するビヘイビアーを実装しました。どういうわけか、Binding と組み合わせて使用​​すると、値がリセットされます。それを取り除くと、バインディングは正常に機能していました。

私の限られた知識のため、理由を説明することはできません。しかし、あなたの時間をありがとう。

于 2012-11-05T06:36:13.260 に答える