고객과 구매 항목을 지원하는 애플리케이션을 구축 중입니다. 각 고객은 구매 목록을 원하는 분야여러 DialogWindows 내에서 바인딩 사용 - 취소 문제
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 컨트롤에 Customers '목록을 바인딩합니다. 사용자가 고객 중 한 명을 두 번 클릭하면 고객의 개인 정보를 편집 할 수있는 새로운 DialogWindow (# 2)가 열리 며 그 중 대부분은 편집을 허용하는 텍스트 상자이며 그 내에서 고객 개체에 바인딩됩니다 고객의 목록 사용자가 '확인'버튼을 누르면 바인딩이 수행됩니다 (모든 텍스트 상자에서 UpdateSourceTrigger.Explicit를 선택했습니다).
대화 상자 (# 2)가 닫히고 변경 사항이 발생했습니다 (대화 상자 (# 1)의 ListView에서 변경 내용을 볼 수 있음). 문제는 사용자가 대화 상자 (# 1)에서 '취소'버튼을 누르면 변경 사항이 발생하지 않을 것으로 예상됩니다 (실제로 소스에 이 이미 업데이트 되었음).
변경 사항을 어떻게 취소 할 수 있습니까? 나는 고객 목록의 사본을 갖고 싶지 않다. (이것은 매우 공간이 많이 소모되는 목록 일 것이다.)