From 4138183352d73228c52269ee1972a010a0cc4a96 Mon Sep 17 00:00:00 2001 From: Robert McRackan Date: Wed, 11 May 2022 10:49:41 -0400 Subject: [PATCH] improve grid 'visible' --- Source/LibationWinForms/grid/ProductsGrid.cs | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/Source/LibationWinForms/grid/ProductsGrid.cs b/Source/LibationWinForms/grid/ProductsGrid.cs index 36a9e7b5..b6abb4d8 100644 --- a/Source/LibationWinForms/grid/ProductsGrid.cs +++ b/Source/LibationWinForms/grid/ProductsGrid.cs @@ -35,6 +35,7 @@ namespace LibationWinForms public partial class ProductsGrid : UserControl { + /// Visible rows have changed public event EventHandler VisibleCountChanged; // alias @@ -208,6 +209,8 @@ namespace LibationWinForms if (_dataGridView.Rows.Count == 0) return; + var initVisible = getVisible().Count(); + var searchResults = SearchEngineCommands.Search(searchString); var productIds = searchResults.Docs.Select(d => d.ProductId).ToList(); @@ -224,15 +227,21 @@ namespace LibationWinForms // Causes repainting of the DataGridView bindingContext.ResumeBinding(); - VisibleCountChanged?.Invoke(this, GetVisible().Count()); + + var endVisible = getVisible().Count(); + if (initVisible != endVisible) + VisibleCountChanged?.Invoke(this, endVisible); } #endregion - internal IEnumerable GetVisible() + private IEnumerable getVisible() => _dataGridView .AsEnumerable() - .Where(row => row.Visible) + .Where(row => row.Visible); + + internal List GetVisible() + => getVisible() .Select(row => ((GridEntry)row.DataBoundItem).LibraryBook) .ToList();