2016-10-10 2 views
0

У меня есть TreeView, DataContext которого является моей ViewModel. ViewModel имеет свойство MyProp. Внутри TreeView, я определил ItemContainerStyle с DataTrigger:Связать свойство ViewModel внутри 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 в стилях и триггерах, так как же я могу это сделать?

ответ

1

ли вы пытались взять относительный источник:

 <DataTrigger Binding="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Window}}, Path=DataContext.MyProp}" Value=" "> 
Смежные вопросы