我在 DevExpress XtraGrid (WinForms)中列出日期范围的集合(每个日期范围由Period对象表示)。
在将 Period 一分为二的方法中(分割日期由用户输入),代码执行以下操作:
- 获取焦点行上的 Period 引用。((期间)GridViewPeriods.GetRow(selectedRows[0]);)
- 克隆选定的时间段。
- 获取关于新克隆的 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);
有没有更短或更聪明的方法来做到这一点?