ページ

2010年8月2日月曜日

[Silverlight] ビヘイビアーの開発 その2

[Silverlight] ビヘイビアーの開発 その1」 の続きです。

■ TriggerAction<T>
何らかのトリガーを持つビヘイビアーを作成するときの基本クラスです。
以下のように中身が何もないビヘイビアーを作ってみて Blend に貼り付けてみるとすぐ意味がわかるんじゃないかと思います。

public class TriggerActionSampleBehavior : TriggerAction<FrameworkElement>
{
    protected override void Invoke(object parameter)
    {
        
    }
}

Invoke メソッドが abstract なので中身のないメソッドを定義してますが、それだけで他には何にもありません。これを Blend でボタンに接続してみたときのプロパティウィンドウは以下のようになります。

TriggerActionSampleBehaviorProrperty.jpg

コードの中身は何も無いのにちゃんとトリガーが選択できるようになっています。
上記の図だと親オブジェクトの Click イベントをトリガーに指定しています。この場合、Click イベントが発生すると Invoke メソッドが呼ばれます。
だから「接続しているオブジェクトでトリガーが発生したら○○する」 というビヘイビアーを作るときに必要なのは Invoke メソッドの中身を書くことだけです。

■ TargetedTriggerAction<T>
こちらも TriggerAction<T> と同じように中身無しでビヘイビアーを作り Blend に貼り付けてみます。

public class TargetedTriggerActionSampleBehavior : TargetedTriggerAction<FrameworkElement>
{
    protected override void Invoke(object parameter)
    {

    }
}

TargetedTriggerActionSampleBehaviorProrperty.jpg

まぁ、クラス名からだいたい予想は付くと思いますが、TriggerAction<T> と比べると 「TargetName」 が増えています。
要するに 「接続しているオブジェクトでトリガーが発生したらターゲットに○○する」 というようなビヘイビアーを作りたいときに TargetedTriggerAction<T> を基本クラスとして使えばいいわけです。
TargetName に指定したオブジェクトは Target プロパティに格納されています。Target プロパティの型は T です。

[Silverlight] ビヘイビアーの開発 その3」 に続きます。

0 件のコメント:

コメントを投稿