1

有没有办法在 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>

这行不通。如果我在不在树视图中的按钮上使用我的命令,则该命令被触发。我怎么解决这个问题?

4

2 回答 2

2

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

使用 AncestorType 来引用 TreeViews DataContext(与 Windows DC 相同,如果您没有手动设置):

Command="{Binding RelativeSource={RelativeSource AncestorType={x:Type TreeView}}, Path=DataContext.TreeViewClickCommand}" 
于 2013-02-15T12:33:44.397 回答
-1

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

于 2013-02-15T12:38:35.360 回答