如何获取Infragistics xamDataGrid中排序后记录的索引顺序?
如何获取Infragistics xamDataGrid中排序后记录的索引顺序?
嗨,我完全懂你碰到的这个问题——直接遍历grid1.Records拿到的索引始终是数据源里的原始顺序,哪怕用户已经对列做了排序,输出结果还是没变,这确实挺头疼的。
其实问题出在你遍历的集合上:grid1.Records是和绑定的数据源直接挂钩的,不管界面上怎么排序、过滤,它的顺序永远和数据源保持一致,所以拿不到用户看到的实时显示顺序。
想要获取当前界面上用户实际看到的记录索引顺序,你得用xamDataGrid的RecordManager里的VisibleRecords集合。这个集合是经过排序、筛选(甚至分组)处理后的结果,完全对应界面上的显示顺序。
给你个能用的代码示例:
foreach (Record visibleRecord in grid1.RecordManager.VisibleRecords) { // visibleRecord.VisibleIndex 是当前记录在界面上的显示位置索引(从0开始) // visibleRecord.Index 是该记录在原始数据源中的索引 System.Diagnostics.Debug.WriteLine($"显示位置:{visibleRecord.VisibleIndex},原始数据源索引:{visibleRecord.Index}"); }
这样输出的结果就会和用户看到的排序顺序完全一致了。哪怕后续用户做了分组或者过滤操作,VisibleRecords也会自动更新,保证你拿到的是最新的界面显示顺序。
备注:内容来源于stack exchange,提问作者Pratham Nagpure
相关产品推荐
相关产品推荐

