Флажок в столбце gridviewcolumn (заголовок)

#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