对ListBox项进行排序会清除选择

时间:2014-10-28 16:50:18

标签: c# wpf

我有一个带有

的ListBox
  

IsSynchronizedWithCurrentItem ="真"

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

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));
    }

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

1 个答案:

答案 0 :(得分:1)

因为您正在清除列表。通过存储选择并在重新填充列表后重新选择它来修复它。