WPF - Listview没有正确显示排序值

时间:2015-08-04 16:21:34

标签: wpf sorting listview

我必须为一个WPF项目使用Listview而不是Datagrid,所以我必须手动实现排序。基础列表正确排序,但显示不正确。

我的列表设置如下:

ObservableCollection<myObject> MasterList = new ObservableCollection<myObject>();
ObservableCollection<myObject> SortedList = new ObservableCollection<myObject>();
guiList.ItemsSource = SortedList;

我使用this教程设置排序,一切似乎都很好,但GUI列表没有按照我期望的顺序排序。这是完成排序的代码的一个小例子:

private void UpdateList()
{
    switch (columnToSort)
    {
        case ColumnSort.ID:
        if (sortDirection == ListSortDirection.Ascending)
        {
            SortedList = new ObservableCollection<myObject>(MasterList.OrderBy(o => o.ID));
        }
        else
        {
            SortedList = new ObservableCollection<myObject>(MasterList.OrderByDescending(o => o.controllerID));
        }

    break;
}

当我调试上面的代码时,SortedList的顺序正确,所以我无法弄清楚为什么guiList没有以相同的顺序显示。我甚至尝试过:

guiList.ItemsSource = null;
guiList.ItemsSource = SortedList;

每次更新后只是为了“重置”guiList,但仍然无法正常工作。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

我无法准确说明为什么上面的代码无法正常工作,因为它似乎对我有用,但是你应该考虑使用CollectionView,这样你就不需要维护一个单独的集合了已排序的对象。