Как хранится коллекция, которая поставляет элементы для ListBox?Это должна быть коллекция, которая поддерживает INotifyCollectionChanged
.Каркас предоставляет ObservableCollection<T>
, который вы можете использовать.
В конструкторе вашей ViewModel (или там, где живет коллекция) вы получите DefaultView для добавления SortDescription
.CollectionView
подобен слою поверх вашей коллекции, который вы можете использовать для сортировки, группировки, фильтрации и т. Д. Элементов, фактически не влияя на базовый источник данных.Фреймворк создает по умолчанию для вас.Чтобы получить ссылку на него, вы можете использовать код, подобный следующему:
var collectionView = CollectionViewSource.GetDefaultView(Widgets);
if(collectionView == null)
return;
collectionView.SortDescriptions.Add(new SortDescription("Content", ListSortDirection.Descending));
Имея это, вы сможете добавлять элементы в ObservableCollection<T>
, и порядок сортировки будет поддерживаться.