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; } }
いまいち。