まぐらぼ

Unity/Android、Microsoft系のWPFをやってます。

MVVMパターンの学習

MVVMパターンは難易度が高いという話をネットで見かけます。難易度が高いというよりも体系的にまとまった良質のドキュメントが無いために、断片的な記事を探す必要があって時間と手間がかかる点、断片的なゆえに学習順番が不適切な点に障壁を感じます。資格試験や大学受験のように知識習得の高速道路が引かれていたら2日あれば基礎は習得可能と思います。

WeakEventPatternは理屈を聞くと納得ですがGC環境ではメモリ意識しないので盲点でした。黄色いバラのサイトで実装を確認する→かずきの記事で説明を確認するの順序で読み進むと良いと思います。もしくは英語圏のドキュメントを探す。

やった事をメモります。
★Gloopsの人やSlideShareのプレゼン資料に目を通す(ななめ読み)
MVVM入門 その1-3
1回「四則演算アプリケーションの作成」
2回「入力値の検証」
3回「ViewModelからViewを操作する」(Messenger/Message/Trigger&TriggerActionなどの実装)写経しました。C#コードは頭に浮かびますがXAMLを諳んじるのが難しいです。

★復習
このあたりで自分の知識が混乱している事を認識したので次の項目を復習をしました。
・基本的なコマンド
カスタムコマンド
・ビヘイビアの復習
Blendのビヘイビアを使った簡単な例。ViewにあるコントロールのメソッドをViewModelから実行する

★WeakEventPattern
MVVMフレームワークにはModelからViewModelへの参照が消えずにメモリリークにつながり易いと聞きました。この対策としての「WeakEventのパターン」を知らなかったのでサンプルを探して写経しました。

【WPF】変更通知をIWeakEventListenerでリッスン!
黄色いバラが素敵なサイトです。

イベントとIDisposable

MVVM入門 その4「MVVM Framework/MVVM Light toolkit」
Prismはボリューム大のため「MVVM Light toolkit」を使います。えーと、using namespaceを消してビルドエラーになったところを中心に写経。差分だけなのでサクサク進みます。

[備考]
・「かずき」MVVM Light toolkitのMessengerでメッセージ送信時に結果を受け取る
・「わんくまの人」MVVM パターンで VM から VIEW を操作したい 

Model-View-ViewModel デザイン パターンによる WPF アプリケーションby Josh Smith この記事は良い事書いているらしいので文字ばっかりで「うへぇ」となり読みませんでした。