对ListBox项进行排序可清除所选内容

  • 本文关键字:清除 排序 ListBox c# wpf
  • 更新时间 :
  • 英文 :


我有一个带有的ListBox

IsSynchronizedWithCurrentItem="True"

问题是,如果我选择了多个项目并更改排序顺序,我最终只选择了一个项目。

private ICollectionView FileCollectionView;
FileCollectionView = CollectionViewSource.GetDefaultView(FileCollection);
this.FilesLB.ItemsSource = CollectionViewSource.GetDefaultView(FileCollectionView);
ObservableCollection<FileData> _fileCollection = new ObservableCollection<FileData>();
public ObservableCollection<FileData> FileCollection
  { get { return _fileCollection; } }

private void SortFiles()
{
    using (FileCollectionView.DeferRefresh())
    {       
        FileCollectionView.SortDescriptions.Clear();
        FileCollectionView.SortDescriptions.Add(new SortDescription(t.SortFiles.SortBy, t.SortFiles.SortDirection));
    }

为什么会发生这种情况,我该如何解决?

因为您正在清除列表。通过存储所选内容并在重新填充列表后重新选择来修复此问题。

最新更新