0

コントロールがほとんどないSilverlightページがあり、すべての動作がデータバインドされていません。たとえば、RichTextBoxはTextプロパティのデータバインドされています。ただし、太字、斜体、番号などのコントロールの動作は、コントロールの上にあるツールバーのボタンクリックイベントから駆動されます。これらのコントロールはデータの値を変更しますが、実際にはデータを保存/取得しません。では、ViewModelでICommandオブジェクトを作成するよりも、SilverlightページのコードビハインドページにそのようなUIイベントを保持しても大丈夫ですか?

MVVMは、モデルと内部的に対話するために、ビューがViewModelと対話する必要があると言っています。ここでは、ビューはモデルではなくビューを更新しているだけです。それで、そのようなイベントのコードビハインドは問題ありませんか?

4

1 に答える 1

1

この種のことは非常に主観的ですが、ViewModelは、ビューの表示方法の設定を含むビューのモデルであることを忘れないでください。ビューのコマンドではなく、ボタンなどをViewModelのICommands(たとえば、「DelegateCommand」または「RelayCommand」の場合はgoogle)に接続します。次に、My ViewModelは必要に応じてその状態を更新し、Viewはイベントに応答します。ボタンのクリックは、ビューが応答する(そしてイベントの例外やロギングなどを処理する)ためにイベントを起動する以外にVMが何もしない場合でも、ViewModelをループします。

動作するデータに影響を与えないビューの複雑な動作には、もちろんコードビハインドでイベントを処理するのが適切ですが、通常、これはウィンドウなどではなく、ユーザーコントロールの場合です。

于 2010-07-10T10:30:53.117 に答える