假设我在 VS2010提供的Data Grid
中选择了一行。
现在假设我需要仅在所选行下面的记录那么我该怎么做?
我认为这可以通过迭代 Data Grid
的每一行来完成。但是如何?
为什么这样?因为
假设我已将一个集合绑定到datagrid。
现在,我使用Data Grid
的标题 重新排序 Data Grid
。
然后Data Grid
中的记录已重新排序,但下层集合中的记录仍然无序。
意味着重新排序 不会影响谎言集合。
所以我无法使用来获取所选行下方的记录。
注意:此处需要重新排序
...谢谢
答案 0 :(得分:1)
您可以使用CollectionView
获取包装原始集合的CollectionViewSource.GetDefaultView
以及排序顺序。
您的DataGrid需要与当前项目同步,然后您获得位置并获取该对象,例如:
<DataGrid IsSynchronizedWithCurrentItem="True" ItemsSource="{Binding Data}" />
var view = CollectionViewSource.GetDefaultView(Data) as ListCollectionView;
if (view != null)
{
var i = view.CurrentPosition;
var nextEmp = view.GetItemAt(i + 1) as Employee;
if (nextEmp != null)
{
nextEmp.Name = "Steve!";
}
}