Jelajahi Sumber

Fix to FilterRows option not having effect on the new button.

Kenric Nugteren 6 bulan lalu
induk
melakukan
33cbf57676

+ 3 - 1
inabox.wpf/DynamicGrid/ColumnFilter/StaticColumnFilter.cs

@@ -105,7 +105,8 @@ public abstract class CheckBoxDynamicGridColumnFilter : IDynamicGridColumnFilter
         itemList.ItemTemplate = TemplateGenerator.CreateDataTemplate(() =>
         itemList.ItemTemplate = TemplateGenerator.CreateDataTemplate(() =>
         {
         {
             var box = new CheckBox();
             var box = new CheckBox();
-            box.Padding = new(5.0);
+            box.Height = 25;
+            box.VerticalAlignment = VerticalAlignment.Center;
             box.VerticalContentAlignment = VerticalAlignment.Center;
             box.VerticalContentAlignment = VerticalAlignment.Center;
             box.HorizontalAlignment = HorizontalAlignment.Stretch;
             box.HorizontalAlignment = HorizontalAlignment.Stretch;
             box.Bind<FilterItem, string?>(
             box.Bind<FilterItem, string?>(
@@ -120,6 +121,7 @@ public abstract class CheckBoxDynamicGridColumnFilter : IDynamicGridColumnFilter
             return box;
             return box;
         });
         });
         itemList.HorizontalContentAlignment = HorizontalAlignment.Stretch;
         itemList.HorizontalContentAlignment = HorizontalAlignment.Stretch;
+        itemList.VerticalContentAlignment = VerticalAlignment.Center;
         itemList.ItemsSource = CoreUtils.One(_selectAll).Concat(_items);
         itemList.ItemsSource = CoreUtils.One(_selectAll).Concat(_items);
 
 
         searchBox.TextChanged += (o, e) =>
         searchBox.TextChanged += (o, e) =>

+ 2 - 6
inabox.wpf/DynamicGrid/UIComponent/DynamicGridGridUIComponent.cs

@@ -186,7 +186,6 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
         DataGrid.RowDragDropController ??= new GridRowDragDropController();
         DataGrid.RowDragDropController ??= new GridRowDragDropController();
         
         
         DataGrid.CurrentCellBorderThickness = new Thickness(0);
         DataGrid.CurrentCellBorderThickness = new Thickness(0);
-        DataGrid.AllowFiltering = false;
         DataGrid.EnableDataVirtualization = true;
         DataGrid.EnableDataVirtualization = true;
         DataGrid.RowHeight = 30;
         DataGrid.RowHeight = 30;
         DataGrid.QueryRowHeight += DataGrid_QueryRowHeight;
         DataGrid.QueryRowHeight += DataGrid_QueryRowHeight;
@@ -500,7 +499,6 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
             DataGrid.AllowEditing = allowEditing;
             DataGrid.AllowEditing = allowEditing;
             reloadColumns = true;
             reloadColumns = true;
         }
         }
-        DataGrid.AllowFiltering = Parent.Options.FilterRows && Parent.CanFilter();
         DataGrid.FilterRowPosition = Parent.Options.FilterRows && Parent.CanFilter() ? FilterRowPosition.FixedTop : FilterRowPosition.None;
         DataGrid.FilterRowPosition = Parent.Options.FilterRows && Parent.CanFilter() ? FilterRowPosition.FixedTop : FilterRowPosition.None;
 
 
         if (Parent.Options.DragSource || Parent.Options.ReorderRows)
         if (Parent.Options.DragSource || Parent.Options.ReorderRows)
@@ -888,8 +886,6 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
 
 
     private void ApplyFilterStyle(GridColumn column, bool filtering, bool allowSorting)
     private void ApplyFilterStyle(GridColumn column, bool filtering, bool allowSorting)
     {
     {
-        column.AllowFiltering = false;
-
         var filterstyle = new Style();
         var filterstyle = new Style();
         if (filtering)
         if (filtering)
         {
         {
@@ -906,7 +902,6 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
             filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
             filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
             filterstyle.Setters.Add(new Setter(Control.IsEnabledProperty, false));
             filterstyle.Setters.Add(new Setter(Control.IsEnabledProperty, false));
             column.ColumnFilter = ColumnFilter.Value;
             column.ColumnFilter = ColumnFilter.Value;
-            column.AllowFiltering = false;
             column.AllowSorting = false;
             column.AllowSorting = false;
             column.FilterRowEditorType = "TextBox";
             column.FilterRowEditorType = "TextBox";
             column.FilterRowOptionsVisibility = Visibility.Collapsed;
             column.FilterRowOptionsVisibility = Visibility.Collapsed;
@@ -935,6 +930,8 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
 
 
     private void SetFilterUIButton(GridColumn gridColumn, DynamicColumnBase column)
     private void SetFilterUIButton(GridColumn gridColumn, DynamicColumnBase column)
     {
     {
+        if (!Parent.Options.FilterRows || !Parent.CanFilter()) return;
+
         if (Parent.GetColumnFilter(column) is not IDynamicGridColumnFilter filter) return;
         if (Parent.GetColumnFilter(column) is not IDynamicGridColumnFilter filter) return;
 
 
         var vertical = column is DynamicActionColumn ac && ac.VerticalHeader && !ac.HeaderText.IsNullOrWhiteSpace();
         var vertical = column is DynamicActionColumn ac && ac.VerticalHeader && !ac.HeaderText.IsNullOrWhiteSpace();
@@ -1183,7 +1180,6 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
             newcol.Width = tmplCol.Width;
             newcol.Width = tmplCol.Width;
             newcol.ColumnSizer = GridLengthUnitType.None;
             newcol.ColumnSizer = GridLengthUnitType.None;
             newcol.HeaderText = column.HeaderText;
             newcol.HeaderText = column.HeaderText;
-            newcol.AllowFiltering = false;
             newcol.AllowSorting = false;
             newcol.AllowSorting = false;
             newcol.FilterRowOptionsVisibility = Visibility.Collapsed;
             newcol.FilterRowOptionsVisibility = Visibility.Collapsed;
             
             

+ 2 - 7
inabox.wpf/DynamicGrid/UIComponent/DynamicGridTreeUIComponent.cs

@@ -667,8 +667,6 @@ public class DynamicGridTreeUIComponent<T, TKey> : IDynamicGridUIComponent<T>, I
             reloadColumns = true;
             reloadColumns = true;
         }
         }
 
 
-        _tree.AllowFiltering = Parent.Options.FilterRows;
-
         if (Parent.Options.DragSource)
         if (Parent.Options.DragSource)
         {
         {
             if (!_tree.AllowDraggingRows)
             if (!_tree.AllowDraggingRows)
@@ -1061,8 +1059,6 @@ public class DynamicGridTreeUIComponent<T, TKey> : IDynamicGridUIComponent<T>, I
 
 
     private void ApplyFilterStyle(TreeGridColumn column, bool filtering, bool isactioncolumn)
     private void ApplyFilterStyle(TreeGridColumn column, bool filtering, bool isactioncolumn)
     {
     {
-        column.AllowFiltering = false;
-
         var filterstyle = new Style();
         var filterstyle = new Style();
         if (filtering)
         if (filtering)
         {
         {
@@ -1079,7 +1075,6 @@ public class DynamicGridTreeUIComponent<T, TKey> : IDynamicGridUIComponent<T>, I
             filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
             filterstyle.Setters.Add(new Setter(Control.BackgroundProperty, new SolidColorBrush(Colors.Gainsboro)));
             filterstyle.Setters.Add(new Setter(Control.IsEnabledProperty, false));
             filterstyle.Setters.Add(new Setter(Control.IsEnabledProperty, false));
             column.ColumnFilter = ColumnFilter.Value;
             column.ColumnFilter = ColumnFilter.Value;
-            column.AllowFiltering = false;
             column.AllowSorting = false;
             column.AllowSorting = false;
         }
         }
     }
     }
@@ -1104,6 +1099,8 @@ public class DynamicGridTreeUIComponent<T, TKey> : IDynamicGridUIComponent<T>, I
 
 
     private void SetFilterUIButton(TreeGridColumn gridColumn, DynamicColumnBase column)
     private void SetFilterUIButton(TreeGridColumn gridColumn, DynamicColumnBase column)
     {
     {
+        if (!Parent.Options.FilterRows || !Parent.CanFilter()) return;
+
         if (Parent.GetColumnFilter(column) is not IDynamicGridColumnFilter filter) return;
         if (Parent.GetColumnFilter(column) is not IDynamicGridColumnFilter filter) return;
 
 
         var vertical = column is DynamicActionColumn ac && ac.VerticalHeader && !ac.HeaderText.IsNullOrWhiteSpace();
         var vertical = column is DynamicActionColumn ac && ac.VerticalHeader && !ac.HeaderText.IsNullOrWhiteSpace();
@@ -1219,7 +1216,6 @@ public class DynamicGridTreeUIComponent<T, TKey> : IDynamicGridUIComponent<T>, I
             newcol.Width = column.Width;
             newcol.Width = column.Width;
             newcol.ColumnSizer = TreeColumnSizer.None;
             newcol.ColumnSizer = TreeColumnSizer.None;
             newcol.HeaderText = column.HeaderText;
             newcol.HeaderText = column.HeaderText;
-            //newcol.AllowFiltering = column.Filters != null && column.Filters.Any();
             newcol.AllowSorting = false;
             newcol.AllowSorting = false;
             newcol.ShowHeaderToolTip = column.ToolTip != null;
             newcol.ShowHeaderToolTip = column.ToolTip != null;
             
             
@@ -1243,7 +1239,6 @@ public class DynamicGridTreeUIComponent<T, TKey> : IDynamicGridUIComponent<T>, I
             newcol.Width = tmplCol.Width;
             newcol.Width = tmplCol.Width;
             newcol.ColumnSizer = TreeColumnSizer.None;
             newcol.ColumnSizer = TreeColumnSizer.None;
             newcol.HeaderText = column.HeaderText;
             newcol.HeaderText = column.HeaderText;
-            //newcol.AllowFiltering = false;
             newcol.AllowSorting = false;
             newcol.AllowSorting = false;
             newcol.ShowToolTip = false;
             newcol.ShowToolTip = false;
             newcol.ShowHeaderToolTip = false;
             newcol.ShowHeaderToolTip = false;