【问题标题】:Adding a new item to collection doesn't respect existing sort when displayed in Telerik RadGridView in Silverlight在 Silverlight 的 Telerik RadGridView 中显示时,将新项目添加到集合不尊重现有排序
【发布时间】:2011-08-28 08:28:52
【问题描述】:

我的表单上有一个 RadGridView 控件,绑定到我的 ViewModel 中的一个集合。当我将一个新项目添加到我的集合中时,它确实会在网格中显示该项目,但它总是放在最后并且不考虑当前排序。有人知道如何解决这个问题吗?

谢谢!

【问题讨论】:

    标签: silverlight telerik radgridview


    【解决方案1】:

    不确定您遇到了什么问题,但我整理了一个快速的概念证明,一切似乎都按预期工作。在此处查看可用的下载:

    Quick grid demo

    让我知道它与您的设置有何不同。我按 ID 排序,然后在添加新项目时,新项目按预期填充到排序集合中,因为它们是使用落在原始范围内的随机 ID 制作的。也许您没有使用 ObservableCollection 或 *CollectionView?

    -埃文

    【讨论】:

    • 我正在使用 EF 生成的 EntityCollection...我将网格直接绑定到模型。
    • AHhh,当我转换为 ObservableCollection 时,网格在添加新项目时按预期工作。但是,它在编辑项目时不尊重排序。
    • 啊,确实如此,在这种情况下,请尝试将您的 EF 模型包装到 QueryableCollectionView 中(将 System.Windows.Data 添加到您的引用中)。 QCV 使用 IEnumerable 集合进行初始化,可以通过相同的绑定绑定到您的视图,并在编辑或其他任何事情时发送更新通知,以便 RadGridView 可以尊重这一点。如果您需要演示,请告诉我。 :)
    • 我尝试了 QueryableCollectionView,但我似乎在添加时再次失去了可排序性,并且编辑仍然有效。
    【解决方案2】:

    如果在添加新项目时使用ObservableCollection 可以解决您的问题,您可以使用CellEditEnded 事件来重置网格上的排序。

    您可以在代码或 xaml 中订阅事件;看看CellEditEnded documentation。在处理程序中,您可以取消设置排序,然后再次设置。

    我还没有尝试过仅使用 WPF DataGrid 的 Telerik 组件。

    【讨论】:

      猜你喜欢
      • 2012-03-19
      • 1970-01-01
      • 1970-01-01
      • 2022-11-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-15
      • 2011-06-28
      相关资源
      最近更新 更多