2013-02-15 161 views
1

有沒有辦法在WPF樹視圖中做鼠標或鍵綁定?鼠標綁定在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位於Window/UserControl的DataContext中。

使用AncestorType來指代的TreeView的DataContext(這是相同的Windows DC,如果你沒有設置manuelly):

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

哇。這樣可行。 :-) – user2025830 2013-02-15 12:37:19