From 07ef92a2c2dc43b063b656d850924e17cd98a308 Mon Sep 17 00:00:00 2001 From: Erik Darling <2136037+erikdarlingdata@users.noreply.github.com> Date: Fri, 13 Feb 2026 11:09:27 -0500 Subject: [PATCH] Lite: add column-level filtering to all data grids (#18) Port the Dashboard's column filter system to Lite. Users can now click a filter icon on any column header to open a popup with operator selection (contains, equals, greater than, etc.) and filter value input. Filters persist across auto-refresh cycles. Active filters show a gold icon; inactive filters show dim. New generic DataGridFilterManager eliminates per-grid boilerplate by encapsulating filter state, unfiltered data capture, LINQ filtering, and button style updates for each of the 11 DataGrids. Tested: filters apply/clear correctly, icons toggle color, data refreshes preserve active filters. Co-Authored-By: Claude Opus 4.6 --- Lite/Controls/ColumnFilterPopup.xaml | 54 + Lite/Controls/ColumnFilterPopup.xaml.cs | 159 +++ Lite/Controls/ServerTab.xaml | 1678 +++++++++++++---------- Lite/Controls/ServerTab.xaml.cs | 232 +++- Lite/Models/ColumnFilterState.cs | 66 + Lite/Models/FilterOperator.cs | 27 + Lite/Services/DataGridFilterManager.cs | 136 ++ Lite/Services/DataGridFilterService.cs | 114 ++ Lite/Themes/DarkTheme.xaml | 1 + 9 files changed, 1752 insertions(+), 715 deletions(-) create mode 100644 Lite/Controls/ColumnFilterPopup.xaml create mode 100644 Lite/Controls/ColumnFilterPopup.xaml.cs create mode 100644 Lite/Models/ColumnFilterState.cs create mode 100644 Lite/Models/FilterOperator.cs create mode 100644 Lite/Services/DataGridFilterManager.cs create mode 100644 Lite/Services/DataGridFilterService.cs diff --git a/Lite/Controls/ColumnFilterPopup.xaml b/Lite/Controls/ColumnFilterPopup.xaml new file mode 100644 index 00000000..2ca878fd --- /dev/null +++ b/Lite/Controls/ColumnFilterPopup.xaml @@ -0,0 +1,54 @@ + + + + + + + + + + + + + + + + +