Risolto,
ho aggiunto una property al mio modello:
codice:
[DisplayName("IsChecked")]
public bool IsChecked { get; set; }
nel mio CS ho inserito:
codice:
private void HeadCheck(object sender, RoutedEventArgs e, bool IsChecked)
{
var items = dgPlan.Items.OfType<AnalysisPlanItem>();
foreach (var item in items)
{
item.IsChecked = IsChecked;
}
dgPlan.Items.Refresh();
}
private void chkbxSelectAll_Checked(object sender, RoutedEventArgs e)
{
HeadCheck(sender, e, true);
}
private void chkbxSelectAll_Unchecked(object sender, RoutedEventArgs e)
{
HeadCheck(sender, e, false);
}
nello XAML:
codice:
<DataGridTemplateColumn>
<DataGridTemplateColumn.Header>
<CheckBox Name="chkbxSelectAll" Checked="chkbxSelectAll_Checked" Unchecked="chkbxSelectAll_Unchecked" />
</DataGridTemplateColumn.Header>
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<CheckBox x:Name="CheckBox" IsChecked="{Binding IsChecked}" PreviewMouseLeftButtonDown="CheckBox_PreviewMouseLeftButtonDown" />
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
Il mio obiettivo era non intaccare il modello...ma alla fine si è rilevata la strada più semplice.