lundi 13 mars 2017

Check SelectAll filtered records in WPF DataGrid

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