How can I check all the records filtered by CheckAllBox event without using visible rows? (now it checks only the ones that visible on the screen). this is the code behind:
private void CheckAllBox_OnClick(object sender, RoutedEventArgs e){
var grid = QdfsGrid;
VisibleRows = new List<string>();
if (grid == null)
return;
//Getting the visible rows in dataGrid after filter
foreach (var item in grid.Items)
{
var row = (DataGridRow)grid.ItemContainerGenerator.ContainerFromItem(item);
if (row == null) continue;
if (row.TransformToVisual(grid).Transform(new Point(0, 0)).Y + row.ActualHeight >= grid.ActualHeight) break;
var qdf = (LineItemParameter)row.DataContext;
VisibleRows.Add(qdf.Qdf);
}
var vm = (LineItemsPaneViewModel)DataContext;
var checkBox = (CheckBox)sender;
if (checkBox.IsChecked == null) return;
var value = checkBox.IsChecked.Value;
foreach (var lineItemParameter in vm.LineItemParameters)
{
if (VisibleRows.Contains(lineItemParameter.Qdf))
lineItemParameter.IsEnable = value;
}
}
Thanks!
Aucun commentaire:
Enregistrer un commentaire