C# DevExpress XtraGrid:从对象获取行句柄的正确方法是什么
我在DevExpressXtraGrid(WinForms)中列出了一组日期范围(每个日期范围由一个句点对象表示) 在将时段一分为二(分割日期由用户输入)的方法中,代码执行以下操作:C# DevExpress XtraGrid:从对象获取行句柄的正确方法是什么,c#,winforms,devexpress,C#,Winforms,Devexpress,我在DevExpressXtraGrid(WinForms)中列出了一组日期范围(每个日期范围由一个句点对象表示) 在将时段一分为二(分割日期由用户输入)的方法中,代码执行以下操作: 获取聚焦行上的期间引用。((Period)GridViewPeriods.GetRow(selectedRows[0]);) 克隆所选时段 获取新克隆期间的引用 工作完成后,我想把重点放在新克隆的时期。在这一点上,我只有我的两个周期参考 我在XtraGrid中没有找到任何方法可以根据行的值来定位行(比如通过传递对象
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;
}
有没有更短或更聪明的方法可以做到这一点?看起来你是在用最好的方法做这件事,尽管看起来你需要经历一系列的事情才能得到你想要的东西Dev Express拥有与你相同的解决方案 我认为行索引可能与数据源的顺序相关,但似乎没有任何排序规则
如果您在单个单元格中显示任何类型的唯一标识信息,如果您没有显示唯一标识信息,您可以随时隐藏该列您的数据中没有显示在网格中的唯一标识符,是吗?如果您添加了具有唯一标识信息的列,会怎么样识别信息并使用LocateByValue(参见我编辑的答案),谢谢您的建议。我也想避免那样做。我不喜欢为了能够检索特定的行而必须在UI中放入此类数据。对我来说似乎是“黑客”。我们可以看看一些关于如何添加克隆行的代码吗?AddNewRow应将焦点设置为新记录。请查看此DX文档,感谢您的输入。引用的帖子很旧,但是,正如我最近看到的,我认为没有更好的方法来完成它。@SteveHémond您是否显示任何独特的识别信息?你可以用不,我不是。我写这篇文章的原因也是因为我想避免做隐藏列值调整的事情。
GridViewPeriods.FocusedRowHandle = GetDataRowIndex(tailingPeriod);