我正在構建支持客戶及其購買的應用程序。 每個客戶端購買的清單:在多個對話窗口中使用綁定 - 取消問題
public class Customer
{
public string FirstName { get; set; }
public string LastName { get; set; }
public string Address { get; set; }
public DateTime DateOfBirth { get; set; }
... //Some more properties...
public List<Purchase> PurchasesList { get; set; }
}
public class Purchase
{
public string ProductName { get; set; }
public int ProductSerialNumber { get; set; }
public DateTime DateOfPurchase { get; set; }
...//Some more properties
}
而且我持有的客戶名單:
public List<Customer> Customers { get; set; }
在某些時候,我想編輯的客戶名單和他們的購買。爲此,我將客戶列表綁定到DialogWindow(#1)中的ListView控件。 當用戶雙擊其中一個客戶時,會打開一個新的DialogWindow(#2),允許編輯客戶的個人詳細信息併購買其中的大部分 - 其中大部分是允許編輯的文本框,並將其綁定到客戶對象內顧客的名單。 當用戶按下'OK'按鈕時 - 執行綁定(我在所有文本框上選擇UpdateSourceTrigger.Explicit)。
對話框(#2)現在已關閉並且發生了更改(我可以看到對話框(#1)上的ListView上的更改)。 問題是如果用戶按下對話框(#1)上的「取消」按鈕,他預計不會發生更改(但實際上源已有 已被更新)。
如何撤消更改?我不想保留客戶名單副本(這可能是一個非常耗費空間的列表)