我们希望基于与XtraGrid的datamember相同类型的List集合在XtraGrid上设置选择。
我们现在的做法是迭代gridview行。
private void SetSelectedRowsInternal(IList<StrongType> collecshung)
{
grdvSomeGrid.ClearSelection();
grdvSomeGrid.BeginSelection();
for (int i = 0;i < grdvSomeGrid.RowCount;i++)
{
StrongType _strongTyped = ((StrongType)grdvSomeGrid.GetRow(i));
if (collecshung.Where(x => x.Id == _strongTyped.Id).Count() == 1)
grdvSomeGrid.SelectRow(i);
}
grdvSomeGrid.EndSelection();
}
有更好的方法吗?
答案 0 :(得分:2)
这取决于你填充网格的方式......你可以直接迭代BindingList
(使用LINQ
)。但是如果你发现它花费的时间超过了所需的时间,那么它应该是因为LINQ
函数即使对于少量数据也会被击中超过100万次。
我建议您使用字典而不是LINQ
ed集合。