Quantcast
Channel: かずきのBlog@hatena
Viewing all articles
Browse latest Browse all 1387

Windows 8.1のストアアプリのBehaviorでTriggerBehaviorを作る時の注意点

$
0
0

Actionsプロパティは依存プロパティとして実装しましょう。

何故?

依存プロパティとして実装しないと、ActionにBindingが出来なくなります。

Actionsが依存プロパティではなく、普通のプロパティの場合、以下のようにActionsの中のActionで{Binding}したときにDataContextが切れてnullが渡ってしまいます。

<Button Content="ClickEventTriggerBehvior and MainPageViewModelMessageDialogAction sample button"HorizontalAlignment="Left"Margin="120,176,0,0"Grid.Row="1"VerticalAlignment="Top"><Interactivity:Interaction.Behaviors><Behaviors:ClickEventTriggerBehavior><Behaviors:ClickEventTriggerBehavior.Actions><Behaviors:MainPageViewModelMessageDialogAction TargetObject="{Binding}"/></Behaviors:ClickEventTriggerBehavior.Actions></Behaviors:ClickEventTriggerBehavior></Interactivity:Interaction.Behaviors></Button>

愚痴

以下のようなプロパティの実装がお手本としてあるから、添付プロパティにしなくてもいいじゃん?って思って普通のプロパティとして実装してしまいがちだけど、そうするとActionでBindingできなくて死ぬ。

public ActionCollection Actions
{
    get
    {
        var actions = (ActionCollection)GetValue(ActionsProperty);
        if (actions == null)
        {
            actions = new ActionCollection();
            this.SetValue(ActionsProperty, actions);
        }
        return actions;
    }
}

いまいち。


Viewing all articles
Browse latest Browse all 1387

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>