0

たとえば、itemsSourceが依存関係プロパティにバインドされているコンボボックスがあるとします。バインドされたリストの値は、多くの要因に応じて変更される可能性があります。これらの値を計算するには、取るに足らない時間が必要です。したがって、必要な場合を除いて、アプリケーションがコレクションを更新することは望ましくありません。ビューでデータが必要な場合(つまり、コンボボックスがドロップダウンしている場合)にのみバインドされたプロパティを「遅延」更新するMVVMの正しい方法は何ですか?

4

2 に答える 2

1

にメソッドを追加しますViewModel

class ViewModel {
    public void Refresh() {
        // ...
    }

    // ...
}

...そして必要に応じてあなたのコントロールでそれを呼び出します。

class Control : UserControl {
    private ViewModel ViewModel = new ViewModel();

    void OnDropDown() {
        ViewModel.Refresh();
    }

    // ...
}
于 2012-05-07T18:41:29.143 に答える
1

ViewModelは画面上のすべてのバインドされたデータを認識している必要があるため、ドロップダウンのデータを何らかの方法でフェッチするのはViewModelです。

そのフェッチをトリガーするのは、通常、ボタンのクリックまたはその他のビューイベントから発生するViewModelの「コマンド」です。

于 2012-05-07T18:44:06.170 に答える