zoukankan      html  css  js  c++  java
  • WPF datagrid 弹出右键菜单时先选中该项

     private void datagrid_PreviewMouseRightButtonDown(object sender, MouseButtonEventArgs e)
        {
            object item = GetElementFromPoint((ItemsControl)sender, e.GetPosition((ItemsControl)sender));
        }

        private object GetElementFromPoint(ItemsControl itemsControl, Point point)
        {
            UIElement element = itemsControl.InputHitTest(point) as UIElement;
            while (element != null)
            {
                if (element == itemsControl)
                    return null;
                object item = itemsControl.ItemContainerGenerator.ItemFromContainer(element);
                if (!item.Equals(DependencyProperty.UnsetValue))
                    return item;
                element = (UIElement)VisualTreeHelper.GetParent(element);
            }
            return null;
        }

    可以实现根据选中datagrid中对象属性的不同弹出不同的右键菜单:

    if(item.type=="文件")

    {

               ContextMenu textmenu = new ContextMenu();
                MenuItem item = new MenuItem();
                item .Header = "剪切";
                ClearText.Click += new RoutedEventHandler(btnCut_Click);
                datagrid.ContextMenu = textmenu;}

    else if(item.type=="文件夹")

    {……}

  • 相关阅读:
    Ruby on Rails中的Rake教程(Rake如何把我灌醉!)
    十一、Spring Boot 集成Shiro和CAS
    Spring Boot 快速入门
    一位创业者的血泪史----献给85前创业者的反思
    罗振宇送给新员工的四句话
    Axure 入门
    XMind常用快捷方式汇总
    CAS 单点登陆
    mysql互换表中两列数据
    mysql默认安装目录说明
  • 原文地址:https://www.cnblogs.com/sjqq/p/8585760.html
Copyright © 2011-2022 走看看