在ListViewItem中使用ItemSource进行排序

我在WPF中对listView进行排序时遇到问题。可以使用绑定,但是我想继续使用ListViewItems进行操作。我的问题是ItemSource在默认情况下为null。如果我像下面这样设置itemsource,则它不是null,但是我的排序功能不起作用。

ObservableCollection<ListViewItem> allFormats = new ObservableCollection<ListViewItem>();
foreach (Item drd in formats) {
  ListViewItem lvi = new ListViewItem();
  // Section with ListViewItem manipulation. Set drd values,set tag etc...
  allFormats.Add(lvi);
}
lvFormats.ItemsSource = (ICollectionView)CollectionViewSource.GetDefaultView(allFormats);

排序功能:

private void Sort(string sortBy,ListsortDirection direction)
        {
            CollectionView dataView = (CollectionView)CollectionViewSource.GetDefaultView(this.ItemsSource);

            if (dataView != null)
            {
                dataView.SortDescriptions.Clear();
                SortDescription sd = new SortDescription(sortBy,direction);
                dataView.SortDescriptions.Add(sd);
                dataView.Refresh();
            }
        }

在绑定此作品时,因为我直接在“集合”视图中有类。这里有currentitem = {System.Windows.Controls.ListViewItem: { cFormats = aaaa,cFormatID = 3,cFormatIDVersion = 6 }}。在xaml中,我不使用绑定。

yanchengwanghao 回答:在ListViewItem中使用ItemSource进行排序

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3161095.html

大家都在问