ここでは、AttachedCommandBehavior ライブラリの後にアタッチされたコマンド パターンをモデル化しています。私のボタンは次のようになります。
<Button>
<Button.Style>
<Style TargetType="{x:Type Button}">
<Setter Property="vms:Attached.Behaviors">
<Setter.Value>
<vms:Behaviors>
<vms:Behavior Event="Click"
Command="{Binding ClickCommand}" />
</vms:Behaviors>
</Setter.Value>
</Setter>
</Style>
</Button.Style>
</Button>
すべてがうまく機能しますが、 のセッターBehavior
が実行されると、コマンドはnull
.
Behavior は でFreezable
、Behaviors はFreezableCollection<Behavior>
です。ボタンから DataContext を継承していないようです。
一方、これは正しく機能します。
<Button>
<vms:Attached.Behaviors>
<vms:Behavior Event="Click" Command="{Binding ClickCommand}" />
</vms:Attached.Behaviors>
</Button>
ListViewItem
残念ながら、を使用して生成された をターゲットにする必要があるため、この方法では実行できませんItemContainerStyle
。
スタイルで DataContext を取得する方法はありますか?