2012-01-12 8 views
1

Close、Edit、Cancel、ShowPic、ShowVideoなどのViewModelに異なるコマンドを設定する必要があります。
私が持っているさまざまなViewModelsに基づいて、同じ操作を行うClose、Edit、Cancelのような一般的なコマンドがあります。コンテキストのみが異なる場合があります。次に、ShowPic、ShowVideoのような他のものの場合、それらは自分のビューモデルに属します。良い練習としてあなたのコマンドを整理する方法を、このようなシナリオでMVVMにRelayCommandを保存することをお勧めします。

  1. あなたは別のクラスの呼び出し「コマンド」でそれらのすべてを置くのですか?
  2. いくつか共通していても、それぞれのViewModels内にそれらを配置しますか?
  3. 共通コマンドを他のコマンドと区別していますか?

あなたのアドバイスとサンプルをどのように整理していただきありがとうございます。特定の表示されていません

答えて

0

答えは「2」です。

他のViewModelにも同じコマンドがあっても、あなたのViewModelの重い作業を避けるために注入したサービス(私が話していることがわからない場合は "IoC"を読んでください)冗長ロジック。

0

特定のコマンドはExecuteCanExecuteハンドラでいくつかの静的Uilityクラスにstaticとして宣言することができます(例えば印刷などのビューに依存しない共通の機能を持っているの保存)とx:Static属性内を使用してバインドすることができますXAML。

ただし、ビュー固有のコマンドはViewModelにある必要があります。

関連する問題