我有一个 TreeView,它的 DataContext 是我的 ViewModel。ViewModel 有一个属性MyProp
。在 TreeView 中,我定义了一个带有 DataTrigger 的 ItemContainerStyle:
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Style.Triggers>
<DataTrigger Binding={MyProp} Value="...">
<!-- does not work because DataContext is the Item, not the ViewModel -->
<Setter Property="Focusable" Value="False"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TreeView.ItemContainerStyle>
但是由于 ItemContainerStyle 有一个 Item 作为其 DataContext 而不是 ViewModel,因此 DataTrigger 中的 Binding 不起作用。那么如何告诉我要绑定的 BindingViewModel.MyProp
呢?看来我无法DataContext
在样式和触发器中设置,那我还能怎么做呢?