1. 程式人生 > >wpf treeView新增右擊事件

wpf treeView新增右擊事件

剛開始接觸WPF,今天學習了下treeView控制元件,右擊新增事件。

看了很多網上大牛的東西,終究是搞懂了。

效果圖如下:


Xmal部分:

<TreeView Name="DataTreeView" Margin="1" Grid.Column="0" Grid.Row="4" PreviewMouseRightButtonDown="DataTreeView_PreviewMouseRightButtonDown">

程式碼部分:

#region TreeView 右擊事件t

        //®¨°¡Âº?t

        privatevoid DataTreeView_PreviewMouseRightButtonDown(object

sender, MouseButtonEventArgse)

        {

            vartreeViewItem = VisualUpwardSeach<TreeViewItem>(e.OriginalSourceas DependencyObject)as TreeViewItem;

            //vartreeViewItem = sender as TreeViewItem;

            if(treeViewItem != null)

            {

                treeViewItem.ContextMenu =GetItemRightContextMenu();

                treeViewItem.Focus();

                e.Handled = true;

            }

        }

        static DependencyObject VisualUpwardSeach<T>(DependencyObject source)

        {

            while(source !=null&&source.GetType()!=typeof(T))

            {

                source = VisualTreeHelper

.GetParent(source);

            }

            returnsource;

        }

        //®¨°¨¹¦????Ì£¤

        ContextMenuGetItemRightContextMenu()

        {

            ContextMenumenu = new ContextMenu();

            MenuItemmenuItem = new MenuItem();

            menuItem.Header = "?Ì£¤";

            menuItem.Click += new RoutedEventHandler(menuItem_Click);

            menu.Items.Add(menuItem);

            returnmenu;

        }

        voidmenuItem_Click(object sender, RoutedEventArgs e)

        {

           MessageBox.Show(“OK”);

        }

        #endregion