none
WPF4中的Datagrid控件,如何判断双击的是一行数据,而不是其它元素? RRS feed

答案

  • 您好 到此一游,

    您可以处理MouseRightButtonUp或者MouseLeftButtonUp 事件,向上遍历可视树来确定选中的是那种元素。您可以参考下面的代码:

        private void DataGrid_MouseRightButtonUp(object sender,
                             MouseButtonEventArgs e)
        {
          DependencyObject dep = (DependencyObject)e.OriginalSource;
    
          // 向上遍历Visual树,直到找到列头或者网格
          while ((dep != null) &&
              !(dep is DataGridCell) &&
              !(dep is DataGridColumnHeader))
          {
            dep = VisualTreeHelper.GetParent(dep);
          }
    
          if (dep == null)
            return;
    
          //如果是列头
          if (dep is DataGridColumnHeader)
          {
            DataGridColumnHeader columnHeader = dep as DataGridColumnHeader;
            // do something
          }
    
          //如果是普通网格
          if (dep is DataGridCell)
          {
            DataGridCell cell = dep as DataGridCell;
            // do something
          }
        }

    如果我的回复没什么帮助,请及时反馈。
    Aland Li


    Please mark the replies as answers if they help and unmark if they don't. This can be beneficial to other community members reading the thread.
    2010年5月26日 11:14
    版主