Browse Source

Added ColumnsLoaded event handler to DynamicGrid
Added DisableButtons Property to EmbeddedDynamicEditorForm

frankvandenbos 8 months ago
parent
commit
e316cb4d4f

+ 15 - 3
inabox.wpf/DynamicGrid/DynamicEditorForm/EmbeddedDynamicEditorForm.xaml.cs

@@ -59,12 +59,25 @@ namespace InABox.DynamicGrid
             get => Editor.ReadOnly;
             get => Editor.ReadOnly;
             set
             set
             {
             {
-                OKButton.IsEnabled = !value;
-                CancelButton.IsEnabled = !value;
+                OKButton.IsEnabled = !DisableButtons && !value;
+                CancelButton.IsEnabled = !DisableButtons && !value;
                 Editor.ReadOnly = value;
                 Editor.ReadOnly = value;
             }
             }
         }
         }
 
 
+        private bool _disableButtons = false;
+
+        public bool DisableButtons
+        {
+            get => _disableButtons;
+            set
+            {
+                _disableButtons = value;
+                OKButton.IsEnabled = !ReadOnly && !value; 
+                CancelButton.IsEnabled = !ReadOnly && !value;
+            }
+        }
+        
         private bool _hideButtons = false;
         private bool _hideButtons = false;
 
 
         public bool HideButtons
         public bool HideButtons
@@ -75,7 +88,6 @@ namespace InABox.DynamicGrid
                 _hideButtons = value;
                 _hideButtons = value;
                 OKButton.Visibility = value ? Visibility.Collapsed : Visibility.Visible;
                 OKButton.Visibility = value ? Visibility.Collapsed : Visibility.Visible;
                 CancelButton.Visibility = value ? Visibility.Collapsed : Visibility.Visible;
                 CancelButton.Visibility = value ? Visibility.Collapsed : Visibility.Visible;
-
             }
             }
         }
         }
 
 

+ 22 - 1
inabox.wpf/DynamicGrid/DynamicGrid.cs

@@ -887,7 +887,7 @@ public abstract class DynamicGrid<T> : DynamicGrid, IDynamicGridUIComponentParen
     }
     }
 
 
     #endregion
     #endregion
-
+    
     protected virtual DynamicGridColumns LoadColumns()
     protected virtual DynamicGridColumns LoadColumns()
     {
     {
         return GenerateColumns();
         return GenerateColumns();
@@ -964,6 +964,25 @@ public abstract class DynamicGrid<T> : DynamicGrid, IDynamicGridUIComponentParen
     protected virtual void ConfigureColumns(DynamicGridColumns columns)
     protected virtual void ConfigureColumns(DynamicGridColumns columns)
     {
     {
     }
     }
+
+    public class ColumnsLoadedEventArgs : EventArgs
+    {
+        public DynamicGridColumns VisibleColumns { get; private set; }
+        public DynamicActionColumns ActionColumns { get; private set; }
+        public DynamicGridColumnGroupings ColumnGroupings { get; private set; }
+
+        public ColumnsLoadedEventArgs(DynamicGridColumns visibleColumns, DynamicActionColumns actionColumns,
+            DynamicGridColumnGroupings columnGroupings)
+        {
+            VisibleColumns = visibleColumns;
+            ActionColumns = actionColumns;
+            ColumnGroupings = columnGroupings;
+        }
+    }
+    
+    public delegate void ColumnsLoadedEvent(DynamicGrid sender, ColumnsLoadedEventArgs args);
+
+    public event ColumnsLoadedEvent ColumnsLoaded;
     
     
     private void ReloadColumns()
     private void ReloadColumns()
     {
     {
@@ -975,6 +994,8 @@ public abstract class DynamicGrid<T> : DynamicGrid, IDynamicGridUIComponentParen
         ColumnGroupings.Clear();
         ColumnGroupings.Clear();
         ConfigureColumnGroups();
         ConfigureColumnGroups();
 
 
+        ColumnsLoaded?.Invoke(this,new ColumnsLoadedEventArgs(VisibleColumns, ActionColumns, ColumnGroupings));
+        
         UIComponent.RefreshColumns(VisibleColumns, ActionColumns, ColumnGroupings);
         UIComponent.RefreshColumns(VisibleColumns, ActionColumns, ColumnGroupings);
     }
     }