我在DevExpress XtraGrid (WinForms)中列出了一组日期范围(每个日期范围由 Period 对象表示)。
在将Period分为两个(用户输入分割日期)的方法中,代码执行此操作:
工作完成后,我想把重点放在新克隆的时段上。此时,我只有两个Period引用。
我没有在XtraGrid中找到任何可以根据它的值定位行的方法(比如通过传递一个对象返回一个RowHandle)。
我最后编写了这个辅助方法:
public int GetDataRowIndex(RatePeriod period)
{
int foundIndex = 0;
for (int i = 0; i < GridViewRatePeriods.DataRowCount; i++)
{
if ((RatePeriod)GridViewRatePeriods.GetRow(i) == period)
{
foundIndex = i;
break;
}
}
return foundIndex;
}
然后我将焦点设置在新创建的Period上,如下所示:
GridViewPeriods.FocusedRowHandle = GetDataRowIndex(tailingPeriod);
有更短或更聪明的方法吗?
答案 0 :(得分:0)
看起来你这样做是最好的方式,虽然看起来你必须经历一堆东西才能得到你想要的东西Dev Express拥有与你一样的解决方案
http://www.devexpress.com/Support/Center/p/A1488.aspx
我想也许rowindex可能与数据源的顺序有关,但似乎没有任何整理
http://www.devexpress.com/Support/Center/p/A1488.aspx
如果您在单个单元格中显示任何类型的唯一标识信息,则可以使用LocateByValue如果您没有显示唯一标识信息,则可以始终隐藏该列