Я хочу добавить флажок в заголовок столбца флажка в SFDataGrid в С#

У меня возникли проблемы с добавлением флажка, который может устанавливать и снимать все флажки в этом столбце в Syncfusion SFDataGrid в C#. Это мой код XAML:

      <syncfusion:SfDataGrid.Columns>                         
                            
                            <syncfusion:GridCheckBoxColumn Width="45" x:Name="SelectionColumn" HeaderText="" MappingName="bCreditoPreJudicial"  ShowToolTip="True" ShowHeaderToolTip="true" AllowEditing="true" AllowFiltering="false"  >                                
                                <syncfusion:GridCheckBoxColumn.HeaderTemplate>
                                    <DataTemplate>
                                        <StackPanel Orientation="Horizontal" Width="18" Height="18">
                                            <CheckBox x:Name="chkHeader" Click="chkHeader_Click"/>
                                        </StackPanel>
                                    </DataTemplate>
                                </syncfusion:GridCheckBoxColumn.HeaderTemplate>                              

                            </syncfusion:GridCheckBoxColumn>

Я не могу найти какое-либо свойство CheckboxColumn, которое позволяет мне устанавливать и снимать все флажки или любой метод, чтобы добавить его в класс. Мой SFDataGrid называется «DGCarteraActual», а CheckboxColumn имеет имя сопоставления «bCreditoPreJudicial».

Я пробовал разные методы в классах, но кажется, что моя версия Syncfusion не позволяет мне использовать некоторые свойства. Я ожидал, что флажок в заголовке столбца установит и снимет все флажки в столбце.

2 ответа

Ваше требование отображать флажок в ячейке заголовка и устанавливать/снимать все флажки в этом столбце можно выполнить, используя HeaderTemplate и изменив базовое свойство на основе состояния флажка HeaderCheckBox. Приведенный ниже фрагмент кода может помочь в этом.

Фрагмент кода XAML:

      <syncfusion:GridCheckBoxColumn Width="45" x:Name="SelectionColumn" HeaderText="" MappingName="BCreditoPreJudicial"  ShowToolTip="True" ShowHeaderToolTip="true" AllowEditing="true" AllowFiltering="false"  >
<syncfusion:GridCheckBoxColumn.HeaderTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal" Width="18" Height="18">
            <CheckBox x:Name="chkHeader" Click="chkHeader_Click"/>
        </StackPanel>
    </DataTemplate>
</syncfusion:GridCheckBoxColumn.HeaderTemplate>

Фрагмент кода С#:

      //Event customization
private void chkHeader_Click(object sender, RoutedEventArgs e)
{
   //Here get the collection from the DataContext
   var collection = (this.DataContext as ViewModel).OrdersListDetails;

   foreach (var item in collection)
   {
      //check and uncheck all the checkboxes in the column by change the underlying property value based on HeaderCheckbox state
      (item as OrderInfo).BCreditoPreJudicial = (bool)(sender as CheckBox).IsChecked;
   }
}

Пример демо-ссылки

ДобавитьGridCheckBoxSelectorColumnк столбцам SfDataGrid. Это позволяет вам выбирать/отменять выбор строк в сетке данных.

      <syncfusion:SfDataGrid>
    <syncfusion:SfDataGrid.Columns>
        <syncfusion:GridCheckBoxSelectorColumn MappingName="SelectorColumn" Width="30"/>
    <syncfusion:SfDataGrid.Columns>
</syncfusion:SfDataGrid>
Другие вопросы по тегам