假設需要將客戶對象從數據庫裝載到Silverlight應用程序,以便客戶詳細信息顯示在UI中。我們需要檢測用戶是否在UI中更改任何數據。在Silverlight中檢測異步函數調用完成
我們正在偵聽來自視圖模型的屬性更改通知。但是,當通知是屬性更改的結果作爲加載過程的一部分時,我們必須將其丟棄。
class CustomerLoader
{
Helper helerobj;
Address addressobj;
Profile profileobj;
void LoadFromDb()
{
helperobj.Load();
addressobj.Load();
profileobj.Load();
//start listening after the loading finished
this.propertychanged += new PropertyChangedEventHandler(handlepropertychanged);
}
這樣做的麻煩是內部對象可能調用可能設置屬性的異步函數。因此,當我們開始更改財產時,加載可能尚未完成。
我們需要知道加載何時實際完成。截至目前,我們正在要求開發內部對象類的開發人員在函數完成時應該調用的參數中接受回調。
有沒有其他方法可以做到這一點?