Browse Source

Made DynamicDocumentGrid superceded column Readonly when asked.
Fixed editorvaluechanged event handling

Kenric Nugteren 1 year ago
parent
commit
32af8716c1

+ 12 - 5
inabox.wpf/DynamicGrid/DynamicDocumentGrid.cs

@@ -141,11 +141,18 @@ namespace InABox.DynamicGrid
 
         private bool SupercedeDocument(CoreRow? row)
         {
-            var id = row.Get<TDocument, Guid>(x => x.ID);
-            var document = WorkingList.FirstOrDefault(x => x.ID.Equals(id));
-            if (document != null)
-                document.Superceded = document.Superceded == DateTime.MinValue ? DateTime.Now : DateTime.MinValue;
-            return true;
+            if (!ReadOnly)
+            {
+                var id = row.Get<TDocument, Guid>(x => x.ID);
+                var document = WorkingList.FirstOrDefault(x => x.ID.Equals(id));
+                if (document != null)
+                    document.Superceded = document.Superceded == DateTime.MinValue ? DateTime.Now : DateTime.MinValue;
+                return true;
+            }
+            else
+            {
+                return false;
+            }
         }
 
         private BitmapImage DocumentImage(CoreRow? arg)

+ 1 - 1
inabox.wpf/DynamicGrid/DynamicEditorForm/EmbeddedDynamicEditorForm.xaml.cs

@@ -494,7 +494,7 @@ namespace InABox.DynamicGrid
 
         private Dictionary<string, object?> Editor_OnEditorValueChanged(DynamicEditorGrid sender, string name, object value)
         {
-            return OnEditorValueChanged?.Invoke(this, name, value) ?? new();
+            return EditorValueChanged(this, name, value);
         }
     }
 }

+ 18 - 3
inabox.wpf/DynamicGrid/DynamicEditorGrid.xaml.cs

@@ -56,7 +56,22 @@ namespace InABox.DynamicGrid
             Loaded += DynamicEditorGrid_Loaded;
         }
 
-        public DynamicEditorPages Pages { get; private set; } = new();
+        private DynamicEditorPages _pages = new();
+        public IEnumerable<IDynamicEditorPage> Pages => _pages;
+
+        private void AddPage(IDynamicEditorPage page)
+        {
+            page.ReadOnly = ReadOnly;
+            _pages.Add(page);
+        }
+        private void SetPages(DynamicEditorPages pages)
+        {
+            _pages = pages;
+            foreach (var page in _pages)
+            {
+                page.ReadOnly = ReadOnly;
+            }
+        }
 
         public bool PreloadPages { get; set; }
 
@@ -495,7 +510,7 @@ namespace InABox.DynamicGrid
                     page.PageOrder = 0;
                 }
 
-                Pages.Add(page);
+                AddPage(page);
             }
             return page;
         }
@@ -623,7 +638,7 @@ namespace InABox.DynamicGrid
 
         public void Load(DynamicEditorPages pages)
         {
-            Pages = pages;
+            SetPages(pages);
 
             _columns = new DynamicGridColumns();
             OnCustomiseColumns?.Invoke(this, _columns);

+ 0 - 1
inabox.wpf/DynamicGrid/DynamicEditorPage.cs

@@ -63,6 +63,5 @@ namespace InABox.DynamicGrid
             foreach (var page in pages)
                 Add(page);
         }
-        
     }
 }