http://blogs.wankuma.com/rti/archive/2009/05/22/173423.aspx
XAML でイベントハンドラを登録
上記で、XAML でイベントハンドラを登録できることに違和感を感じると書いたのですが、これは
間違いだった
と思い始めてきました・・・
当時の違和感の理由は、XAML はデザイナであるから、イベントハンドラを登録すること、つまり動きに直結するような記述は避けるべきだというものでした。
しかし、コード側でコマンドを用意して、これを単に呼び出すという形だと考えれば、イベントハンドラを XAML 側で登録する方が自然ではないだろうか?、と今は思い始めています。
コード側にイベントハンドラを登録してしまうと、XAML との結合点は名前になります。
ですから、XAML を差し替える際には、コード側に記述した名前を意識しなければなりません。
一方で、XAML 側でイベントハンドラを登録した時は、XAML への変更や差し替えが行われても、コード側の変更は不要です。
つまり、提供される機能コマンドをコード側に持たせて、このトリガーとしての役割を XAML に与えるという考え方で良いってことだと思うのです。
また、アニメーションを指定する際にも「マウスポインタがターゲット上に移動した時に何かをする」というように、イベントの発行に依存する動作をデザイナ側で意識する必要がある以上は、イベントハンドラを登録する行為そのものが、もはやデザイナ側で必要不可欠であるとも考えられます。