「[Silverlight] ビヘイビアーの開発 その1」 の続きです。
■ TriggerAction<T>
何らかのトリガーを持つビヘイビアーを作成するときの基本クラスです。
以下のように中身が何もないビヘイビアーを作ってみて Blend に貼り付けてみるとすぐ意味がわかるんじゃないかと思います。
public class TriggerActionSampleBehavior : TriggerAction<FrameworkElement> { protected override void Invoke(object parameter) { } }
Invoke メソッドが abstract なので中身のないメソッドを定義してますが、それだけで他には何にもありません。これを Blend でボタンに接続してみたときのプロパティウィンドウは以下のようになります。
コードの中身は何も無いのにちゃんとトリガーが選択できるようになっています。
上記の図だと親オブジェクトの Click イベントをトリガーに指定しています。この場合、Click イベントが発生すると Invoke メソッドが呼ばれます。
だから「接続しているオブジェクトでトリガーが発生したら○○する」 というビヘイビアーを作るときに必要なのは Invoke メソッドの中身を書くことだけです。
■ TargetedTriggerAction<T>
こちらも TriggerAction<T> と同じように中身無しでビヘイビアーを作り Blend に貼り付けてみます。
public class TargetedTriggerActionSampleBehavior : TargetedTriggerAction<FrameworkElement> { protected override void Invoke(object parameter) { } }
まぁ、クラス名からだいたい予想は付くと思いますが、TriggerAction<T> と比べると 「TargetName」 が増えています。
要するに 「接続しているオブジェクトでトリガーが発生したらターゲットに○○する」 というようなビヘイビアーを作りたいときに TargetedTriggerAction<T> を基本クラスとして使えばいいわけです。
TargetName に指定したオブジェクトは Target プロパティに格納されています。Target プロパティの型は T です。
「[Silverlight] ビヘイビアーの開発 その3」 に続きます。
0 件のコメント:
コメントを投稿
注: コメントを投稿できるのは、このブログのメンバーだけです。