代码之家  ›  专栏  ›  技术社区  ›  Faisal

修改wpf排序列表视图中的项不会更改该项的排序位置

  •  5
  • Faisal  · 技术社区  · 14 年前

    我有一个可排序的列表视图,当它出现时,它会被一个实时数据填充。排序工作得很好,但真正的问题出现在将项添加到集合后对其进行修改时。无论排序顺序如何,修改后的项目的位置都不会更改。

    我已经在谷歌上搜索了它,但找不到更好的解决方案,使我的列表视图一个完美的排序列表视图。

    解决??

    1 回复  |  直到 14 年前
        1
  •  4
  •   Dr. WPF    14 年前

    我想你的方法和 this MSDN sample . 如果是,则根据集合视图的sortdescriptions进行排序。只要源集合是可观察的,则在从集合中添加或移除项时,应遵守排序顺序。

    当一个项目被修改时,真正的问题就出现了 之后 正在添加到集合中。在这种情况下,集合不会自动重新排序。

    我详细解释了这个问题 'E' is for Editable Collection (在我的 ItemsControl A to Z 系列)。我还介绍了一些提供不同性能级别的解决方案。最激烈的是通过对collectionview调用refresh()来强制对整个集合重新排序。如果可能的话,我会避免这样做,并使用一个更好的选项,比如在项目上实现ieditableobject,并在项目的属性更改时发出edit()和commit()。