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