2012-08-07 113 views
0

我正在WPF項目上工作,我已經添加了一個TreeView。我還創建了一個ContextMenu到TreeView如下:檢測什麼TreeView節點被右鍵點擊

<TreeView Name="treeView" ItemsSource="{Binding Elements}"> 

       <TreeView.ContextMenu> 
        <ContextMenu Name="treeViewContextMenu"> 
         <MenuItem Header="First option"/> 
         <MenuItem Header="Second Option/> 
        </ContextMenu> 
       </TreeView.ContextMenu> 

.... </TreeView> 

因爲我dinamically添加TreeView的節點,我怎麼能檢測一下節點是右鍵單擊,以打開文本菜單?

希望有人能幫助我,在此先感謝

+0

您的孩子有特定的上下文菜單嗎?或者他們只是有相同的功能,你想要做的,只是想知道哪個treeviewitem被選中? – 2012-08-07 19:53:50

+0

@LeoLuis他們只是具有相同的功能,即只有在ContextMenu – Dante 2012-08-07 20:04:35

回答

1

假設我裝我的TreeView項的動態..

<TreeView Name="treeView" ContextMenuClosing="treeView_ContextMenuClosing"> 

    <TreeView.ContextMenu> 
     <ContextMenu Name="treeViewContextMenu"> 
      <MenuItem Header="First option"/> 
       <MenuItem Header="Second Option"/> 
      </ContextMenu> 
    </TreeView.ContextMenu> 
     <TreeViewItem Header="Hello 1"/> 
     <TreeViewItem Header="Hello 2"/> 
    </TreeView> 

MainWindow.xaml.cs

private void treeView_ContextMenuClosing(object sender, ContextMenuEventArgs e) 
     { 
      //Sender should let me determine who sent it from my children/parent 

      var parent = sender as TreeView; 
      var children = parent.SelectedItem as TreeViewItem; 
      MessageBox.Show(children.Header.ToString()); 
     } 

這是如果你想知道對象的時候ContextMenu是關閉/打開或任何事件,如當MenuItem是點擊

+0

完美的作品,非常感謝你! – Dante 2012-08-07 20:12:28