2009-05-20 6 views
0

View-Model-ViewModelでは、アクションは本質的に、ビューにバインドされたviewmodelによって実行されます。しかし、コードビハインドは使用されておらず、ビューモデルはそれを呼び出したコントロールの参照や知識を持っていないので、「プレゼンテーションロジック」はどこに行きますか?プレゼンテーションロジックはView-Model-ViewModelパターンのどこに配置されますか?

たとえば、ボタンをクリックしたときに別のコントロールにアニメーションを適用する場合はどうすればよいでしょうか。これはまだコードの中に入りますか?

+0

トリガーを使用できないことをアニメーション化しようとしているのは何ですか? –

答えて

2

Justin Niessnerのコメントを展開するには、このアニメーションをすべてのUIにバインドするためのトリガーを使用しています。

はこれについて考える:誰かがそれはhilightedなっボタンをマウスオーバー時になるように、コードを置く

  • を?
  • クリックしたときにそのボタンを「押し下げる」コードはどうですか?

これらとあなたの質問はすべてテーマのバリエーションですので、私はGUIでそれを言うと思います。

ただし、このルールには例外が1つあります。 「アニメーション」が処理アニメーションの場合、ViewModelに結びつける価値があるかもしれないので、ViewModelは何かを処理している間にアニメーションが実行される時間を制御できます。それ以外の場合はGUIで行います。

EDIT:あなたのコメントに基づいています。アニメーションは、ボタンのクリックイベントではなくViewModelのプロパティから実行する必要があります。 Clickは、コマンドを介してViewModelの処理を開始する必要があり、そのコマンドの実行コードは、ViewModelの処理フラグプロパティを設定する必要があります。その後、Viewはその処理フラグにバインドして、プログレスバーを表示するか、そのフラグが設定されているかどうかを表示できます。

+0

これは、アニメーションが「数値のX」(グラフのアニメーション化など)のような定量化可能なものに基づいているため、ビューモデルで行う必要があるとします。これを達成するためにあなたのコードにコードを書き続けますか? – Korbin

関連する問題