瀏覽代碼

Fixed syncing between DynamicGrid.Data and MasterData, so that switching between DirectEdit and normal mode retains the data.

Kenric Nugteren 1 年之前
父節點
當前提交
f2defb2813
共有 1 個文件被更改,包括 8 次插入7 次删除
  1. 8 7
      inabox.wpf/DynamicGrid/DynamicGrid.cs

+ 8 - 7
inabox.wpf/DynamicGrid/DynamicGrid.cs

@@ -1092,11 +1092,11 @@ namespace InABox.DynamicGrid
             var corerow = Data.Rows[iRow];
             var row = DataGridItems.Rows[iRow];
 
-            Dictionary<String, object> changes = new Dictionary<string, object>();
-            foreach (var col in updates.Keys)
+            var changes = new Dictionary<string, object?>();
+            foreach (var (col, value) in updates)
             {
-                corerow[col.ColumnName] = updates[col];
-                DynamicGridUtils.UpdateEditorValue(new BaseObject[] { inplaceeditor }, col.ColumnName, updates[col], changes);
+                UpdateRow(corerow, col.ColumnName, value, refresh: false);
+                DynamicGridUtils.UpdateEditorValue(new BaseObject[] { inplaceeditor }, col.ColumnName, value, changes);
             }
             
             SaveItem(inplaceeditor);
@@ -2504,8 +2504,6 @@ namespace InABox.DynamicGrid
 
             if (IsDirectEditMode() && !OpenEditorOnDirectEdit)
             {
- 
-
                 var item = CreateItem();
                 SaveItem(item);
 
@@ -2866,7 +2864,10 @@ namespace InABox.DynamicGrid
                 if (EditItems(items))
                 {
                     for (var i = 0; i < items.Length; i++)
+                    {
                         ObjectToRow(items[i], rows[i]);
+                        ObjectToRow(items[i], _recordmap[rows[i]]);
+                    }
                     InvalidateGrid();
                     SelectedRows = sel;
                     OnChanged?.Invoke(this, EventArgs.Empty);
@@ -3052,7 +3053,7 @@ namespace InABox.DynamicGrid
 
         protected virtual void ObjectToRow(T obj, CoreRow row)
         {
-            Data.LoadRow(row, obj);
+            row.Table.LoadRow(row, obj);
         }
 
         #region Import / Export