Wpf 在多个对话框窗口中使用绑定-取消问题
我正在构建一个支持客户及其购买的应用程序。 每位客户都持有一份购买清单:Wpf 在多个对话框窗口中使用绑定-取消问题,wpf,data-binding,Wpf,Data Binding,我正在构建一个支持客户及其购买的应用程序。 每位客户都持有一份购买清单: public class Customer { public string FirstName { get; set; } public string LastName { get; set; } public string Address { get; set; } public DateTime DateOfBirth { get; set; }
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控件。
当用户双击其中一个客户时,将打开一个新的对话框窗口2,允许编辑客户的个人详细信息和
他的购买——大多数是文本框,允许编辑,我将它们绑定到客户列表中的客户对象。
当用户按下“确定”按钮时-执行绑定,我在所有文本框上选择UpdateSourceTrigger.Explicit
对话框2现在关闭,并且发生了更改。我可以在对话框1的ListView上看到更改。
问题是,如果用户按下对话框1上的“取消”按钮,他希望不会发生更改,但实际上源已发生更改
已经更新了
如何撤消更改?我不想保存客户列表的副本这可能是一个非常占用空间的列表有一个名为的界面,使用起来非常复杂,但可能会有所帮助,因为它的存在正是为了这个目的:取消编辑 但是,您可能无法保存列表的副本,除非您确切地注意到哪些项目已被编辑并仅存储其原始状态