WPF Datagrid 点击选择item

  • A+
所属分类:.NET技术
摘要

或者绑定的是DataTable    

 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);             }         }