Browse Source

Fix to data refreshing on SupplierBillPanel when saving a Bill

Kenric Nugteren 6 days ago
parent
commit
74923fccdd
1 changed files with 13 additions and 2 deletions
  1. 13 2
      prs.desktop/Panels/Suppliers/Bills/SupplierBillPanel.xaml.cs

+ 13 - 2
prs.desktop/Panels/Suppliers/Bills/SupplierBillPanel.xaml.cs

@@ -143,6 +143,7 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
     }
 
     private Bill[]? _bills = null;
+    private CoreRow[]? _editRows = null;
     
     private void Bills_OnOnSelectItem(object sender, DynamicGridSelectionEventArgs e)
     {
@@ -154,15 +155,17 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
 
     private void ReloadBills()
     {
-        if (Bills.SelectedRows?.Any() == true)
+        if (Bills.SelectedRows.Length != 0)
         {
-            _bills = Bills.LoadBills(Bills.SelectedRows);
+            _editRows = Bills.SelectedRows;
+            _bills = Bills.LoadBills(_editRows);
             Bills.InitialiseEditorForm(Bill, _bills, null, true);
             Bill.Visibility = Visibility.Visible;
         }
         else
         {
             _bills = null;
+            _editRows = null;
             Bill.Visibility = Visibility.Hidden;
         }
     }
@@ -175,6 +178,14 @@ public partial class SupplierBillPanel : UserControl, IPanel<Bill>, IPropertiesP
             Bill.SaveItem(cancel);
             if (!cancel.Cancel)
             {
+                if(_editRows is not null && _bills is not null)
+                {
+                    for(var i = 0; i < _editRows.Length; ++i)
+                    {
+                        Bills.UpdateRow(_editRows[i], _bills[i]);
+                        Bills.InvalidateRow(_editRows[i]);
+                    }
+                }
                 ReloadBills();
                 SetChanged(false);
             }