or

<telerik:RadGridView.GroupHeaderTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <CheckBox Click="RadGridViewGroupRowClicked" Margin="0 0 3 0"/> <TextBlock Text="{Binding Group.Key}" /> </StackPanel> </DataTemplate> </telerik:RadGridView.GroupHeaderTemplate> private void RadGridViewGroupRowClicked(object sender, System.Windows.RoutedEventArgs e) { var groupViewModel = (sender as CheckBox).DataContext as GroupViewModel; var isChecked = (bool) (sender as CheckBox).IsChecked; CheckUncheckRows(isChecked, groupViewModel); } public void CheckUncheckRows(bool isChecked, GroupViewModel groupViewModel) { CheckUncheckItems(isChecked, groupViewModel.Group); } public void CheckUncheckItems(bool isChecked, IGroup group) { if (group.HasSubgroups) { foreach (var subgroup in group.Subgroups) { CheckUncheckItems(isChecked, subgroup); } } else { foreach (var item in group.Items) { if (isChecked) { baseToTargetGridView.SelectedItems.Add(item); } else { baseToTargetGridView.SelectedItems.Remove(item); } } } }