我正在通過創建Silverlight 3應用程序的方式拙劣。我需要一些關於以下場景的高級指導。構建Silverlight 3應用程序
我有一個頁面,用戶填寫了一堆信息。在頁面的底部,基本上有一個提交按鈕。
點擊後,它會將信息提交給數據庫(通過ria服務),然後我需要它將用戶轉發到新頁面。
我提交方法基本上看起來像這樣:
void Click(object o, eventArgs e) {
ViewModel.SaveMyStuff();
this.NavigationService.Navigate(MyUri);
}
因爲SaveMyStuff()方法是異步的,在導航功能運行幾乎立刻。看來,對數據庫的提交從未完全完成。離開頁面導致它(和視圖模型)被卸載。
所以基本上我不希望重定向發生,直到數據庫提交完成後,所以我正在尋找連接事件處理程序,這一切都變成了一個混亂。是否有某種模式或最佳做法來處理頁面是否可以遠離(和其他基本頁面機制)?
我確實有一些代碼,基本上是:
if (ViewModel.RiaDataContext.IsSubmitting) {
Thread.Sleep(500);
}
但是)這似乎是一個醜陋的黑客攻擊,以及b)條件從來都不是假的 - 似乎有可能是在RIA服務中的錯誤。或類似的。