<datagrid x:name="dgDataArea" grid.row="2" autogeneratecolumns="False" selectionmode="Extended" selectionchanged="dgDataArea_SelectionChanged"> <datagrid.columns> <datagridtemplatecolumn x:name="chkCol"> <datagridtemplatecolumn.celltemplate> <datatemplate> <checkbox ischecked="{Binding CheckAll,UpdateSourceTrigger=PropertyChanged}" checked="InnerCheckBox_Checked" unchecked="InnerCheckBox_UnChecked" /> </datatemplate> </datagridtemplatecolumn.celltemplate> </datagridtemplatecolumn> <datagridtextcolumn header="Cheque Id" binding="{Binding Bank_ID,Mode=OneWay}" visibility="Hidden" /> <datagridtextcolumn header="ChequeNo" binding="{Binding ChequeNo,Mode=OneWay}" /> <datagridtextcolumn header="Remark" binding="{Binding Remark,Mode=OneWay}" /> </datagrid.columns> </datagrid> <checkbox x:name="chkSelectAll" grid.row="2" content="Select All" checked="chkSelectAll_Checked" unchecked="chkSelectAll_Unchecked" />
public bool SingleRecordUnselected = false; public bool isAllDataSelected() { return (dgDataArea.ItemsSource as List<bankmaster>).Where(t => !t.CheckAll).Select(t => t.Bank_ID).ToList().Count > 0 ? false : true; } private void InnerCheckBox_Checked(object sender, RoutedEventArgs e) { if (!chkSelectAll.IsChecked.Value) chkSelectAll.IsChecked = isAllDataSelected(); } private void InnerCheckBox_UnChecked(object sender, RoutedEventArgs e) { if (chkSelectAll.IsChecked.Value) { SingleRecordUnselected = true; chkSelectAll.IsChecked = false; } } private void chkSelectAll_Checked(object sender, RoutedEventArgs e) { List<bankmaster> bmlist = dgDataArea.ItemsSource as List<bankmaster>; if (bmlist != null) { foreach (var item in bmlist) { item.CheckAll = true; } dgDataArea.Items.Refresh(); } } private void chkSelectAll_Unchecked(object sender, RoutedEventArgs e) { if (!SingleRecordUnselected) { List<bankmaster> bmlist = dgDataArea.ItemsSource as List<bankmaster>; if (bmlist != null) { foreach (var item in bmlist) { item.CheckAll = false; } dgDataArea.Items.Refresh(); } } else { SingleRecordUnselected = true; } }
var
This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)