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);
}
}
}
}