読者です 読者をやめる 読者になる 読者になる

しばやん雑記

ASP.NET とメイドさんが大好きなフリーランスのプログラマーのブログ

M-V-VM を勉強中

とりあえず、自分がなるほど!と思った部分。いやぁ、よく出来てますね。

DelegateCommand と CommandReference

DelegateCommand って何のためにあるの?と思ってたんですが、WPF に用意されている RoutedCommand や RoutedUICommand は VisualTree に属していないと使えないんですよね。コマンドは ICommand インターフェースを実装しているものなら何でもいいんですよね。

以前 RoutedCommand に悩まされたことがあるので目から鱗でした。

CommandReference は KeyBinding など Command プロパティが依存プロパティじゃないもの用。Resources で宣言しておけば StaticResource で参照できる。

ViewModel

DataContext に何か入れてバインディングしまくるってのは私も結構使っていたんですが、モデルクラスぐらいしか入れてなかったです。なのでイベントハンドラとか普通にコードビハインドに書いてましたが、ViewModel を作ることでコマンド経由でいろいろ処理出来ちゃうんですよね。

モデルとビューを上手いこと繋いでくれるので、全体的にコードがすっきりします。