在WPF TreeView中进行鼠标绑定

时间:2013-02-15 11:40:19

标签: wpf xaml treeview mouse key-bindings

有没有办法在WPF树视图中执行鼠标或键绑定?

<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 个答案:

答案 0 :(得分:2)

如果此命令在TreeView外部工作,我假设您的TreeViewClickCommand位于Window / UserControl的DataContext中。

使用AncestorType引用TreeViews DataContext(如果你没有设置它,则与Windows DC相同):

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

答案 1 :(得分:-1)

您可以使用AttachedCommandBehavior执行此操作。