【发布时间】:2009-08-28 08:07:39
【问题描述】:
我正在笨手笨脚地创建一个 Silverlight 3 应用程序。对于以下场景,我需要一些高级指导。
我有一个用户填写大量信息的页面。在页面底部基本上有一个提交按钮。
点击后,它会将信息提交到数据库(通过 ria 服务),然后我需要它来将用户转发到新页面。
我的 Submit 方法基本上是这样的:
void Click(object o, eventArgs e) {
ViewModel.SaveMyStuff();
this.NavigationService.Navigate(MyUri);
}
因为 SaveMyStuff() 方法是异步的,Navigate 函数几乎立即运行。似乎,对数据库的提交从未完全完成。离开页面会导致页面(和视图模型)被卸载。
所以基本上我不希望重定向发生,直到数据库提交完成之后,所以我正在考虑连接事件处理程序,这一切都变得有点混乱。是否有某种模式或最佳实践来处理是否可以离开页面(以及其他基本页面机制)?
我确实有一些代码,基本上是:
if (ViewModel.RiaDataContext.IsSubmitting) {
Thread.Sleep(500);
}
但是 a.) 这似乎是一个丑陋的 hack,并且 b.) 条件永远不会错误 - 似乎 Ria Services 或类似的可能存在错误。
【问题讨论】:
标签: architecture silverlight-3.0