我有簡單的SL用戶控件。一個列表框,顯示所有客戶以及右側列表框中SelectedItem(Customer)綁定的多個文本框和組合框。 SelectedItem綁定到SelectedCustomer屬性。Silverlight Twoway綁定和回滾更改 - 如何?
我正在尋找一種模式/方法來處理取消對客戶所做的更改(在綁定的文本框和組合框中)。
編輯控件(文本框和組合的)可以是一個或兩個綁定到列表框的selecteditem的方式。 如果雙向綁定,則文本框中的即時更改會反映在列表框中。如果它們是單向的,則文本框中的更改不會反映在SelectedCustomer對象中。
在編輯窗體的底部,我有典型的保存,取消,刪除按鈕。實例的保存按鈕將採用SelectedCustomer對象(如果雙向綁定,我將通過服務發送以保存在服務器上)。
如果文本框是一種方式綁定,我必須以某種方式捕獲文本框的值並插入到某個對象以發送到服務器進行保存。
如果我使用雙向綁定,並說保存操作失敗......我必須將SelectedCustomer值設置回原始值,否則客戶端現在繼續看到尚未保存的數據。
必須有處理這類情況的一個簡單的方法....
好,所以我所做的是爲我的Customer類創建了一個部分類,即SL應用程序中的公共部分類Customer:IEditableObject。在提供的方法中,我提供了類似於http://www.silverlight.net/learn/tutorials/silverlight-4/web-services-and-silverlight/#Exercise3 – David 2011-01-09 21:27:11