0

この行を読んだとき:

ビューモデルは、モデルだけでなく、他のプロパティ (「ビジー」インジケーターなどの状態情報など) とコマンドも公開します。

http://www.codeproject.com/Articles/100175/Model-View-ViewModel-MVVM-Explained

ビューの現在の設定をビューのプロパティまたは状態の一部と見なしてビューモデルに配置する必要があるかどうか疑問に思っています。

たとえば、現在、ビューモデルにバインドされた一連のカラーピッカーを含む現在の色を含むビューモデルにバインドされた設定ウィンドウがあります。コマンドは変更をキャンセルし、[OK] または [キャンセル] をクリックすると古い設定を再適用します。

現在の色は代わりにビューのプロパティにする必要がありますか、それとも現在の場所は問題ありませんか?

public class PreferencesWindowViewModel:DependencyObject
  {
    private DelegateCommand updatePreferencesCommand;

    public ICommand UpdatePreferencesCommand
    {
      get { return updatePreferencesCommand; }
    }
    private DelegateCommand cancelCommand;

    public ICommand CancelCommand
    {
      get { return cancelCommand; }
    }

    public Color HighValuePenColor
    {
      get { return (Color)GetValue(HighValuePenColorProperty); }
      set
      {
        SetValue(HighValuePenColorProperty, value);
      }
    }
4

1 に答える 1

1

私はそれらがビューモデルにあるのが好きです。この機能は単体テスト ハーネスでテストできるという単純な理由からです。それらがビューにあった場合、それをテストするには、さらに多くのフープをジャンプする必要があります. 私の意見では、ビュー モデルにはほとんどのプレゼンテーション ロジックを含める必要があります。色と特定のアプリケーションの状態との関係は、そのコードのカテゴリに属します。

于 2013-09-24T22:40:25.457 に答える