R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

XAML でイベントハンドラを登録(その2)

http://blogs.wankuma.com/rti/archive/2009/05/22/173423.aspx
XAML でイベントハンドラを登録

上記で、XAML でイベントハンドラを登録できることに違和感を感じると書いたのですが、これは

間違いだった

と思い始めてきました・・・

当時の違和感の理由は、XAML はデザイナであるから、イベントハンドラを登録すること、つまり動きに直結するような記述は避けるべきだというものでした。

しかし、コード側でコマンドを用意して、これを単に呼び出すという形だと考えれば、イベントハンドラを XAML 側で登録する方が自然ではないだろうか?、と今は思い始めています。

コード側にイベントハンドラを登録してしまうと、XAML との結合点は名前になります。
ですから、XAML を差し替える際には、コード側に記述した名前を意識しなければなりません。
一方で、XAML 側でイベントハンドラを登録した時は、XAML への変更や差し替えが行われても、コード側の変更は不要です。

つまり、提供される機能コマンドをコード側に持たせて、このトリガーとしての役割を XAML に与えるという考え方で良いってことだと思うのです。

また、アニメーションを指定する際にも「マウスポインタがターゲット上に移動した時に何かをする」というように、イベントの発行に依存する動作をデザイナ側で意識する必要がある以上は、イベントハンドラを登録する行為そのものが、もはやデザイナ側で必要不可欠であるとも考えられます。

投稿日時 : 2009年6月5日 14:15

Feedback

# re: XAML でイベントハンドラを登録(その2) 2009/06/05 15:52 青柳 臣一

> つまり、提供される機能コマンドをコード側に持たせて、このトリガーとしての役割を XAML に与えるという考え方で良いってことだと思うのです。

それをきちんとした形にしたのが Blend 3 の Behavior ですね。
これからは
 デベロッパが Behavior を書く。
 デザイナがコントロールやら Behavior やらを組み合わせてアプリケーションの形にまとめる。
という風になっていんじゃないかと思ってます。
(もちろん、デベロッパとデザイナが同一人物でも構いません。というか、その方が多いかも)

# re: XAML でイベントハンドラを登録(その2) 2009/06/07 8:43 R・田中一郎

>これからは
> デベロッパが Behavior を書く。
> デザイナがコントロールやら Behavior やらを組み合わせてアプリケーションの形にまとめる。

僕の持つ「デザイナ」という言葉の印象が開発者とかけ離れすぎていたため、妙な判断をしてしまった理由かもしれません。

>(もちろん、デベロッパとデザイナが同一人物でも構いません。というか、その方が多いかも)

実際、XAML を記述しているのは開発者が多いですよね。
なので、住み分けとしては、UIデザイン系開発者のような感じになってくるのかな、 と最近は思っています。

タイトル
名前
Url
コメント