zoukankan      html  css  js  c++  java
  • WPF Datagrid 点击选择item

     public static object GetElementFromPoint(System.Windows.Controls.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)System.Windows.Media.VisualTreeHelper.GetParent(element);
                }
                return null;
            }
    
    
    private void Datagrid_PreviewMouseDoubleClick(object sender, MouseButtonEventArgs e)
    {
      var item = GetElementFromPoint((ItemsControl)sender, e.GetPosition((ItemsControl)sender));      
    }
    

    或者绑定的是DataTable

     private void DataGrid1_MouseDoubleClick(object sender, MouseButtonEventArgs e)
            {
                DataGrid datagrid = sender as DataGrid;
                Point aP = e.GetPosition(datagrid);
                IInputElement obj = datagrid.InputHitTest(aP);
                DependencyObject target = obj as DependencyObject;
    
                while (target != null)
                {
                    if (target is DataGridRow)
                    {
                        //var s = this.dataGrid1.SelectedItem;
                        DataRow row = (this.dataGrid1.SelectedItem as DataRowView).Row;
                        if (row != null)
                        {
                            UInt64 ukey = Convert.ToUInt64(row["ukey"]);
                            byte[] content = SqlExManager.GetDpuProtectContent(ukey, _dpu.ThisInpC.Sqlmodel);
                            if (content != null)
                            {
                                ProtectTemapDll.ProtectTempClass.OpenProtecTemp(content, false);
                            }
                            else
                            {
                                MessageBox.Show("查询不到数据");
                            }
                        }
                    }
                    target = VisualTreeHelper.GetParent(target);
                }
            }
    

      

      

  • 相关阅读:
    Nim or not Nim? HDU
    邂逅明下 HDU
    4.1.8 巴什博弈
    4.1.7 Cutting Game(POJ 2311)
    0.1.2 max_element和min_element的用法
    bzoj 2152 聪聪可可 树形dp
    hdu 5976 Detachment 脑洞题 猜结论
    hdu 5974 A Simple Math Problem gcd(x,y)=gcd((x+y),lcm(x,y))
    hdu 5971 Wrestling Match 二分图染色
    Codeforces 842C Ilya And The Tree 树上gcd
  • 原文地址:https://www.cnblogs.com/wangyonglai/p/13711154.html
Copyright © 2011-2022 走看看