Jelajahi Sumber

Allowing sorting columns if EditRows is not enabled, because that means the sequence buttons don't show.

Kenric Nugteren 11 bulan lalu
induk
melakukan
9b4661cbc7

+ 13 - 6
inabox.wpf/DynamicGrid/DynamicGrid.cs

@@ -385,7 +385,7 @@ public abstract class DynamicGrid<T> : DynamicGrid, IDynamicGridUIComponentParen
 
     bool IDynamicGridUIComponentParent<T>.CanSort()
     {
-        return !ShowSequenceButtons;
+        return !ShowSequenceButtons || !Options.EditRows;
     }
 
     T IDynamicGrid<T>.LoadItem(CoreRow row) => LoadItem(row);
@@ -699,17 +699,24 @@ public abstract class DynamicGrid<T> : DynamicGrid, IDynamicGridUIComponentParen
 
         Delete.Visibility = Options.DeleteRows ? Visibility.Visible : Visibility.Collapsed;
 
-        if (up != null)
-            up.Position = Options.EditRows ? DynamicActionColumnPosition.Start : DynamicActionColumnPosition.Hidden;
-        if (down != null)
-            down.Position = Options.EditRows ? DynamicActionColumnPosition.Start : DynamicActionColumnPosition.Hidden;
+        if (up != null && down != null)
+        {
+            var hasSequence = up.Position == DynamicActionColumnPosition.Start;
+            var shouldHaveSequence = Options.EditRows;
+            if(hasSequence != shouldHaveSequence)
+            {
+                up.Position = Options.EditRows ? DynamicActionColumnPosition.Start : DynamicActionColumnPosition.Hidden;
+                down.Position = Options.EditRows ? DynamicActionColumnPosition.Start : DynamicActionColumnPosition.Hidden;
+                reloadColumns = true;
+            }
+        }
 
         if (DuplicateBtn != null)
             DuplicateBtn.Visibility = Visibility.Collapsed;
 
         reloadColumns = reloadColumns || UIComponent.OptionsChanged();
 
-        if(reloadColumns)
+        if(reloadColumns && IsReady)
         {
             Refresh(true, false);
         }

+ 1 - 4
inabox.wpf/DynamicGrid/UIComponent/DynamicGridGridUIComponent.cs

@@ -884,7 +884,6 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
                     newcol.ImageWidth = DataGrid.RowHeight - 8;
                     newcol.ColumnSizer = GridLengthUnitType.None;
                     newcol.HeaderText = column.HeaderText;
-                    newcol.AllowSorting = false;
 
                     ApplyFilterStyle(newcol, true, true);
 
@@ -1118,9 +1117,7 @@ public class DynamicGridGridUIComponent<T> : IDynamicGridUIComponent<T>, IDynami
             column.FilterRowCondition = FilterRowCondition.Contains;
             column.FilterRowOptionsVisibility = Visibility.Collapsed;
             column.AllowBlankFilters = true;
-            column.AllowSorting = isactioncolumn
-                ? false
-                : Parent.CanSort();
+            column.AllowSorting = !isactioncolumn && Parent.CanSort();
         }
         else
         {