Можно ли как-то отсортировать дочерние элементы ItemsControl
, не прибегая к созданию нового (уже отсортированного) ItemsSource
?
Сортировка элементов ItemsControl в WPF
2
Новые ответы
0
Нужно отсортировать CollectionView:
List<MyObject> myInternalList = new List<MyObject>();
...
ICollectionView colView = CollectionViewSource.GetDefaultView(myInternalList);
colView.SortDescriptions.Add(new SortDescription("Name", ListSortDirection.Ascending));
Нужно получить вид по умолчанию из списка. В этом случае вам не нужно отсортировать список, потому что он всегда будет отсортирован. Можно добавить столько SortDescriptions сколько вы хотите.
0
Можно использовать CollectionViewSource
в качестве ItemsSource
. Например так:
<Window ...
xmlns:ComponentModel="clr-namespace:System.ComponentModel;assembly=WindowsBase">
<Window.Resources>
<CollectionViewSource x:Key="viewSource" Source="{Binding SomeSource}">
<CollectionViewSource.SortDescriptions>
<ComponentModel:SortDescription Direction="Ascending" />
</CollectionViewSource.SortDescriptions>
</CollectionViewSource>
</Window.Resources>
...
<ListBox ItemsSource="{Binding Source={StaticResource viewSource}}" />
</Window>
Так не подойдёт?
Подойдет. Напиши тогда этот способ как ответ, а я напишу как сделать сортировку непосредственно в XAML-разметке.