#c# #wpf #listview #gridview #checkbox
#c# #wpf #просмотр списка #просмотр сетки #флажок
Вопрос:
Я использую listview (gridview / gridviewcolumn), где первый столбец содержит только флажки для каждой строки. Вместо добавления кнопки «Выбрать все» я хочу добавить флажок в заголовок первого столбца.
При установке флажка в заголовке будут установлены все остальные флажки и наоборот.
Как я могу это сделать в xaml?
Обновление: Это важная часть моего кода xaml. (упрощенный)
<ListView ItemSource="...">
<ListView.View>
<GridView>
<GridViewColumn>
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Комментарии:
1. Что вы делали до сих пор для достижения своей цели? Покажите часть вашего кода /XAML
2. Обновил мой вопрос текущим кодом xaml.
Ответ №1:
Чтобы установить флажок поверх GridViewColumn, вы можете сделать что-то вроде этого
<GridViewColumn>
<GridViewColumn.Header>
<CheckBox/>
</GridViewColumn.Header>
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox IsChecked="{Binding IsSelected}" />
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Теперь вы можете обрабатывать событие проверки, и в коде вы можете выполнять итерации по вашему ItemsSource и изменять значения, или, если вы следуете MVVM, вы можете привязать свойство к checkbox, чтобы при изменении проверки вы получали уведомление через INotifyPropertyChanged
. Как только вы узнаете с помощью привязки, что проверка изменилась, вы снова можете соответствующим образом изменить свой itemssource