我在此处的 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>
一切都很好,但是当执行 setter 时Behavior
,命令是null
.
行为是一个Freezable
,行为是一个FreezableCollection<Behavior>
。它似乎没有从 Button 继承 DataContext。
另一方面,这可以正常工作:
<Button>
<vms:Attached.Behaviors>
<vms:Behavior Event="Click" Command="{Binding ClickCommand}" />
</vms:Attached.Behaviors>
</Button>
不幸的是,我不能这样做,因为我需要ListViewItem
使用ItemContainerStyle
.
有什么方法可以在 Style 中获取 DataContext 吗?