Есть WPF список на основе тега ListView. Как добавить возможность сортировки этого списка при клике на header колонки?
Как добавить сортировку в WPF список (ListView)?
2
Спросил
Лучший ответ:
1
Дополнение к этому ответу
В блоге Thomas Levesque’s blog есть два поста, в которых описывается решение этой задачи:
- Автоматическая сортировка GridView при клике на заголовок — основные принципы и простейший вариант решения.
- Автоматическа сортировка GridView (продолжение) — улучшенная вервия кода из первого поста. Включает отрисовку «стрелочки» на заголовке колонки в зависимости от направления сортировки.
Новые ответы
0
1
Вот так:
<ListView ItemsSource="{Binding Persons}"
IsSynchronizedWithCurrentItem="True"
util:GridViewSort.AutoSort="True">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="Name"
DisplayMemberBinding="{Binding Name}"
util:GridViewSort.PropertyName="Name"/>
<GridViewColumn Header="First name"
DisplayMemberBinding="{Binding FirstName}"
util:GridViewSort.PropertyName="FirstName"/>
<GridViewColumn Header="Date of birth"
DisplayMemberBinding="{Binding DateOfBirth}"
util:GridViewSort.PropertyName="DateOfBirth"/>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
util
здесь
Недостаток такого решения в том, что его трудно использовать повторно. Вернее его нужно воспроизводить для каждого нового списка заново.