Browse Source

Added "Reset to default" for columns of grid

Kenric Nugteren 1 year ago
parent
commit
e33049a0cb
1 changed files with 20 additions and 17 deletions
  1. 20 17
      inabox.wpf/DynamicGrid/DynamicGridCustomColumnsComponent.cs

+ 20 - 17
inabox.wpf/DynamicGrid/DynamicGridCustomColumnsComponent.cs

@@ -74,21 +74,6 @@ public class DynamicGridCustomColumnsComponent<T>
         new UserConfiguration<DynamicGridColumns>(tag).Save(columns);
     }
 
-    public void LoadColumnsMenu(ContextMenu menu)
-    {
-        menu.AddSeparatorIfNeeded();
-        var ResetColumns = new MenuItem { Header = "Reset Columns to Default" };
-        ResetColumns.Click += ResetColumnsClick;
-        menu.Items.Add(ResetColumns);
-        if (Security.IsAllowed<CanSetDefaultColumns>())
-        {
-            menu.Items.Add(new Separator());
-            var UpdateDefaultColumns = new MenuItem { Header = "Mark Columns as Default" };
-            UpdateDefaultColumns.Click += UpdateDefaultColumnsClick;
-            menu.Items.Add(UpdateDefaultColumns);
-        }
-    }
-
     private string GetTag(bool directEdit)
     {
         var tag = Tag ?? typeof(T).Name;
@@ -115,14 +100,32 @@ public class DynamicGridCustomColumnsComponent<T>
         return new NullEditor();
     }
 
-    private void ResetColumnsClick(object sender, RoutedEventArgs e)
+    public void LoadColumnsMenu(ContextMenu menu)
+    {
+        menu.AddSeparatorIfNeeded();
+        menu.AddItem("Reset Columns to Default", null, ResetColumnsClick);
+        if (Security.IsAllowed<CanSetDefaultColumns>())
+        {
+            menu.AddItem("Reset Columns to System Default", null, ResetColumnsToSystemClick);
+            menu.AddSeparator();
+            menu.AddItem("Mark Columns as Default", null, UpdateDefaultColumnsClick);
+        }
+    }
+
+    private void ResetColumnsToSystemClick()
+    {
+        SaveColumns(Grid.GenerateColumns());
+        Grid.Refresh(true, false);
+    }
+
+    private void ResetColumnsClick()
     {
         Grid.VisibleColumns.Clear();
         SaveColumns(Grid.VisibleColumns);
         Grid.Refresh(true, true);
     }
 
-    private void UpdateDefaultColumnsClick(object sender, RoutedEventArgs e)
+    private void UpdateDefaultColumnsClick()
     {
         var tag = GetTag(Grid.IsDirectEditMode());
         new GlobalConfiguration<DynamicGridColumns>(tag).Save(Grid.VisibleColumns);