我有一个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有一个项作为它的DataContext而不是ViewModel,所以DataTrigger中的绑定不起作用。那么,我如何告诉绑定,我想绑定到ViewModel.MyProp?似乎我不能在样式和触发器中设置DataContext,那么我还能怎么做呢?
发布于 2016-10-10 11:01:46
你有没有想过你的亲戚:
<DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.MyProp}" Value=" ">https://stackoverflow.com/questions/39956616
复制相似问题