【问题标题】:WPF Keep column sorting with DatagridWPF使用Datagrid保持列排序
【发布时间】:2010-12-15 04:21:42
【问题描述】:

我有几个需要更新信息的数据网格。事情是,由于不止一个人同时在系统上工作,因此需要定期刷新数据网格。当我刷新时,我失去了用户的排序。

有没有办法保留它?

谢谢

【问题讨论】:

    标签: wpf sorting datagrid


    【解决方案1】:

    只更新绑定集合的内容 - 不要替换集合本身。那么您将不会获得新的 CollectionView,因此您的排序不会受到影响。

    【讨论】:

    • 我试过了,但似乎不能让它工作。我得再检查一下
    【解决方案2】:

    请注意,这是未经测试的,但你能做这样的事情吗?

    ListCollectionView lcv = (ListCollectionView)CollectionViewSource.GetDefaultView(myDataGrid.ItemsSource);
    IComparer mySort = lcv.CustomSort;  // assumes you've already set it beforehand
    ... // stuff happens
    lcv.CustomSort = mySort;
    

    我自己还在学习 WPF,但希望这对我有所帮助... -马特。

    【讨论】:

    • 要覆盖所有的基础,您可能还需要在 SortDescriptions 中进行复制。这样,无论如何选择排序,您都将保留排序顺序。相关代码将是这样的: var sd = lcv.SortDescriptions.ToList(); [...] if(!lcv.SortDescriptions.SequenceEqual(sd) { lcv.SortDescriptions.ClearItems(); foreach(d in sd) lcv.SortDescriptions.Add(d); }
    猜你喜欢
    • 2014-01-20
    • 2023-03-05
    • 2012-11-04
    • 2013-05-13
    • 2013-12-31
    • 1970-01-01
    • 2020-05-15
    • 2010-11-17
    • 2010-11-20
    相关资源
    最近更新 更多