DevSumi2009 デベロッパーに贈る!M-V-VMパターンで造るWPFアプリケーション

GUIプログラミングについて興味があったので聞いた。
これをJavaScriptでのリッチUI作成に応用出来ないか考えたい。

MVCM-V-VM

MVCにおけるViewは出力だが、
M-V-VMにおけるViewは

  • データの視覚化
  • ユーザの操作を受け取る

M-V

  • データバインディング
    • 2つのオブジェクトのプロパティを同期
    • 変更を通知するeventがディスパッチされたタイミングで各種ロジックが走るとか。

M-V-VM

ViewとViewModelをバインド、ViewModelにて値の検証を行った上でModelに値を反映する。
要はViewとModelの対応するプロパティの型や制約の違いを吸収する為にViewModelを使うという事?

入力が検証を通らない場合にそもそもアクションを起こせないようにする

これをイベントハンドラを使わずにやる

  • >コマンドを作ってやってボタンにバインド

ViewModelに処理を持てきているのでViewほぼはXAMLのみ
ViewModel+Modelを完全に使い回してViewだけ差し替えるというのも可能。
BMI計算アプリをテキストボックスベースからスライダーベースに返るとか。

まとめ

まずはModel-Viewから始める。
ViewModelはViewを抽象化したもの