WPF数据网格: - 遍历每一行或记录(C#4.0)

时间:2011-06-17 10:37:56

标签: .net wpf wpfdatagrid

假设我在 VS2010提供的Data Grid选择了一行

现在假设我需要仅在所选行下面的记录那么我该怎么做?

我认为这可以通过迭代 Data Grid的每一行来完成。但是如何?

为什么这样?因为

假设我已将一个集合绑定到datagrid。

现在,我使用Data Grid标题 重新排序 Data Grid

然后Data Grid中的记录已重新排序,但下层集合中的记录仍然无序。

意味着重新排序 不会影响谎言集合

所以我无法使用来获取所选行下方的记录。

注意:此处需要重新排序

...谢谢

1 个答案:

答案 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!";
    }
}