在devexpress datagrid中查找单元格

时间:2018-05-09 23:29:32

标签: c# wpf devexpress gridcontrol

我是DevExpress GridControl的新手。 我需要在网格中找到一个特定的单元格,然后用它的值来做一些事情。 我该怎么办呢?

在网格的Loaded方法中,我尝试使用myGrid.FindRowByValue("ProductType","ABC"),,但总是给出一个负数。

感谢。

2 个答案:

答案 0 :(得分:0)

以下是您可以尝试的代码

for (int i = 0; i < gridView1.DataRowCount; i++) {
    object b = gridView1.GetRowCellValue(i, "FieldName");
    if (b != null && b.Equals(<someValue>)){
        gridView1.FocusedRowHandle = i;
        return;
    }
}

您可以访问此链接了解更多详情。

https://www.devexpress.com/Support/Center/Question/Details/Q132599/get-row-by-cell-value

答案 1 :(得分:0)

与XtraGrid不同,WPF的DXGrid不提供DataRowCount属性 - 这就是我们建议检查GridControl的ItemsSource的原因。另一方面,我们的网格具有VisibleRowCount属性,这在某些情况下很有用。

要完成此任务,请手动迭代可见网格行,如下所示。

void MoveFocusToLast(GridControl grid, string fieldName, object value) {
    for (int i = grid.VisibleRowCount - 1; i >= 0; i--) {
        var handle = grid.GetRowHandleByVisibleIndex(i);
        var currentValue = grid.GetCellValue(handle, fieldName);
        if (currentValue != null && currentValue.Equals(value)) {
            grid.View.FocusedRowHandle = handle;
            return;
        }
    }
}
  

Grid还提供FindRowByValue方法,允许您使用   按特定单元格值查找行。此方法返回的句柄   相应的行,您可以通过设置使该行可见   FocusedRowHandle属性或致电ScrollIntoView。一世   准备了一个展示这种方法的样本。

另见:
Traversing Rows
Find Row
Get RowHandle from a cell value