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