I have a Datagrid. In which I have a Checkbox in header. When I clicked on Header checkbox it is selecting/deselecting all records in grid.
<DataGridTemplateColumn.HeaderTemplate>
<DataTemplate>
<CheckBox Click="CheckBox_Click" Name="HeaderCheckBox" Uid="HeaderCheckBox" CommandParameter="{Binding}" IsChecked="{Binding Path=DataContext.IsHeaderSelected, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}, Mode=FindAncestor}}" VerticalAlignment="Center" HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.HeaderTemplate>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox Click="CheckBox_Click" CommandParameter="{Binding}" IsChecked="{Binding IsSelected}" VerticalAlignment="Center" HorizontalAlignment="Center" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
But when I click on all individual records HeaderCheckbox is not getting checked. Here is my MVVM model
public class FineViewModel : INotifyPropertyChanged
{
public decimal TotalAmount { get; set; } = 0;
public event PropertyChangedEventHandler PropertyChanged;
private void ReportChange(string propertyName)
{
if (null != PropertyChanged)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
private bool isselected { get; set; } = false;
public bool IsSelected
{
get { return isselected; }
set { isselected = value; ReportChange("IsSelected"); }
}
private bool isactive { get; set; } = false;
public bool IsActive
{
get { return isactive; }
set { isactive = value; ReportChange("IsActive"); }
}
private bool isheaderselected { get; set; } = false;
public bool IsHeaderSelected
{
get { return isheaderselected; }
set { isheaderselected = value; ReportChange("IsHeaderSelected"); }
}
}