0

私はWPFプロジェクトに取り組んでおり、それにTreeViewを追加しました。ContextMenuまた、以下のようにTreeViewにを作成しました。

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

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

.... </TreeView>

treeViewノードを動的に追加するので、contextMenuを開くために右クリックされたノードをどのように検出できますか?

誰かが私を助けてくれることを願っています、事前に感謝します

4

1 に答える 1

1

ツリービューアイテムを動的にロードしたと仮定します。

  <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がクリックされたときのようなイベント知りたいかどうかは、あなた次第です。

于 2012-08-07T20:01:15.860 に答える