2013-02-15 5 views
1

Есть ли способ сделать мышь или KeyBinding в дереве WPF?Mousebinding в WPF TreeView

<TreeView ItemsSource="{Binding Main.TreeItems}"> 
    <TreeView.ItemTemplate>       
     <HierarchicalDataTemplate ItemsSource="{Binding Path=Children}">       
      <TextBlock Text="{Binding Path=Header}"> 
       <TextBlock.InputBindings> 
        <MouseBinding Command="{Binding TreeViewClickCommand}" MouseAction="LeftDoubleClick"/> 
       </TextBlock.InputBindings> 
      </TextBlock> 
     </HierarchicalDataTemplate> 
    </TreeView.ItemTemplate> 
</TreeView> 

Это не работает. Если я использую свою команду на кнопке не в древовидной структуре, тогда команда запускается. Как я могу решить эту проблему?

ответ

2

Если эта команда работает вне TreeView, я предполагаю, что ваш TreeViewClickCommand находится в DataContext вашего Window/UserControl.

Использование AncestorType для обозначения TreeViews DataContext (который является таким же, как Windows, DC, если вы не установили его manuelly):

Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type TreeView}}, Path=DataContext.TreeViewClickCommand}" 
+0

ничего себе. это работает. :-) – user2025830