Wpf 绑定到ItemContainerStyle中的ViewModel属性以在触发器中使用

Wpf 绑定到ItemContainerStyle中的ViewModel属性以在触发器中使用,wpf,data-binding,datatrigger,itemcontainerstyle,Wpf,Data Binding,Datatrigger,Itemcontainerstyle,我有一个树视图,它的DataContext是我的ViewModel。ViewModel有一个属性MyProp。在TreeView中,我定义了一个带有DataTrigger的ItemContainerStyle: <TreeView.ItemContainerStyle> <Style TargetType="{x:Type TreeViewItem}"> <Style.Triggers> <DataTrig

我有一个树视图,它的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
,那么我还能怎么做呢?

您是否尝试获取您的相对源代码:

     <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.MyProp}" Value="  ">

您是否尝试获取您的相对来源:

     <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.MyProp}" Value="  ">