界面组件DevExpress WPF中文教程:Grid - 如何获取行句柄?

DevExpress WPF拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpress WPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。 无论是Office办公软件的衍伸产品,还是以数据为中心的商业智能产品,都能通过DevExpress WPF控件来实现。

DevExpress WPF GridControl包含多个方法,这些方法允许您在数据源中获取行句柄、可见索引和索引,本文将为大家列出并描述了这些方法。

获取DevExpress WPF 正式版下载

获取行句柄
  • DataViewBase.FocusedRowHandle:如果DataViewBase.NavigationStyle属性没有设置为GridViewNavigationStyle.None,则指定焦点行的句柄。
  • DataViewBase.GetRowHandleByMouseEventArgs(MouseEventArgs):返回位于鼠标指针下的行句柄。
  • DataViewBase.GetRowHandleByTreeElement(DependencyObject):返回包含指定元素的行句柄。
  • GridControl.GetRowHandleByVisibleIndex(Int32):通过该行可见索引返回该行句柄。
  • GridControl.GetRowHandleByListIndex(Int32):根据数据源中的索引返回行句柄。
  • GridControl.GetListIndexByRowHandle(Int32):通过行句柄返回数据源中的行索引。
  • DataControlBase.FindRow(Object):在GridControl或TreeListControl中搜索数据行并返回该行句柄。
  • DataControlBase.FindRowByValue(ColumnBase, Object):在列中搜索值并返回相应行的句柄。
  • DataControlBase.FindRowByValue(String, Object):在列中搜索值并返回相应行的句柄。
  • GridControl.FindRowByValueAsync(ColumnBase, Object):在列中搜索值,并异步返回相应行的句柄。
  • GridControl.FindRowByValueAsync(String, Object):在列中搜索值,并异步返回相应行的句柄。
  • DataViewBase.GetNextRowHandle(Int32):返回指定行的后一行的句柄。
  • DataViewBase.GetPrevRowHandle(Int32):返回指定行之前的行句柄。

下面的示例显示如何获取已单击的行。

C#

private void TableView_MouseDown(object sender, MouseButtonEventArgs e) {
int rowHandle = grid.View.GetRowHandleByMouseEventArgs(e as MouseEventArgs);
MessageBox.Show(GetRowType(rowHandle), "Hit Info");
}
private string GetRowType(int rowHandle) {
if (grid.IsGroupRowHandle(rowHandle))
return "Group Row";
if (rowHandle == GridControl.AutoFilterRowHandle)
return "Automatic Filter Row";
if (rowHandle == GridControl.NewItemRowHandle)
return "New Item Row";
if (rowHandle == GridControl.InvalidRowHandle)
return "Invalid Row";
return "Data Row";
}
获取数据源中的数据行和行索引

行句柄和可见索引反映了视图中行的可见顺序,这些可能会随着行位置或可见性的改变而改变。要引用数据源中的特定行,应该使用列表索引(数据源中的行索引)。要通过指定句柄来获得行的列表索引,请使用GridControl.GetListIndexByRowHandle方法。

要获取具有指定句柄的行对应的行对象,请使用DataControlBase.GetRow, GridControl.GetRowAsync 或 GridControl.GetRowByListIndex方法。要获取焦点行,请使用GridControl.GetFocusedRow方法。行对象表示数据源中的记录,例如,DataRow对象表示数据表中的一条记录。

你可能感兴趣的:(wpf,UI开发,用户界面,界面控件,devexpress)