应用了过滤器的DevEx Grid GetSelectedRows()

时间:2012-03-06 19:38:55

标签: c# winforms gridview devexpress

在应用过滤器时,我在DevEx网格上获取所选行(GetSelectedRows())时遇到问题。似乎GetSelectedRows使用过滤器返回网格中的位置,而不是数据源中的实际行句柄。

var rowHandles = gridView.GetSelectedRows();
var count = rowHandles.Length;
for (int indx = count-1; indx >= 0; indx-- )
{
     if (rowHandles[indx] >= 0)
     {
          if (ServiceProxy.Instance.IsAlive(CommandNames.Delete))
              ((IList<ISymbolFieldInfo>)_staticPriceConfigurationBindingListUser).RemoveAt(rowHandles[indx]);
          }
     }
}

谁能告诉我这里做错了什么。我希望GetSelectedRows()从网格中返回实际的行句柄,而不是应用过滤器的行句柄。

由于

1 个答案:

答案 0 :(得分:0)

我相信你的假设不正确。 DevX文档说:“由于行句柄反映了视图中行的显示顺序,因此如果对数据进行排序和/或过滤,修改单行可能会影响以下行的句柄。”

我不认为你在该循环中删除行的方法是安全的,因为每次执行时,rowhandles都可能会发生变化。可以在here

中找到有关网格控件中选择的概述