wpfmvvminfragisticsxamdatagrid

How to enable/disable a header checkbox in Infragistics XamDataGrid


I am using Infragistics XamDataGrid to display data on the Grid. In this grid, there is one check box column (column name: "IsSelected"). I have added CheckBox in header in this column to 'Select All' option.

How to enable/disable this header CheckBox based on a property 'IsCheckboxHeaderEnabled' in ViewModel?

 <igDP:XamDataGrid x:Name="ItemSource" DataSource="{Binding ItemSource,Mode=TwoWay}" Grid.Row="0" Margin="10" AutoFit="true">
    <igDP:XamDataGrid.FieldLayouts>
        <igDP:FieldLayout>
            <igDP:FieldLayout.Fields>
                <igDP:Field Name="IsSelected" Label=" " HorizontalContentAlignment="Left"  Width="Auto" VerticalContentAlignment="Center">
                    <igDP:Field.Settings>
                        <igDP:FieldSettings DataItemUpdateTrigger="OnCellValueChange">
                            <igDP:FieldSettings.LabelPresenterStyle>
                                <Style TargetType="{x:Type igDP:LabelPresenter}">
                                    <Setter Property="ContentTemplate">
                                        <Setter.Value>
                                            <DataTemplate>
                                                <CheckBox Checked="CheckBox_Checked" Unchecked="CheckBox_Unchecked" Content="" IsEnabled="{Binding IsCheckboxHeaderEnabled}"/>
                                            </DataTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </igDP:FieldSettings.LabelPresenterStyle>
                        </igDP:FieldSettings>
                    </igDP:Field.Settings>
                </igDP:Field>                      
                <igDP:Field Label="Projects" Name="ModelFileName" AllowEdit="False" HorizontalContentAlignment="Left" Width="*"/>
            </igDP:FieldLayout.Fields>
        </igDP:FieldLayout>
    </igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>

Solution

  • This should work provided that the IsCheckboxHeaderEnabled property is defined in the same class as the ItemSource property:

    <CheckBox ... IsEnabled="{Binding DataContext.IsCheckboxHeaderEnabled, RelativeSource={RelativeSource AncestorType=igDP:XamDataGrid}}"/>