也许我过度思考这个问题,但这就是我想要实现的目标。
我的WP7应用程序中有两个MVVM项目(程序集)。主项目中的一个页面将调用第二个项目中的另一个页面。第二页将允许用户浏览Web上的文件列表,并选择一个要下载到隔离存储的文件。文件相当小。
对于一些背景:我想要两个程序集,因为在应用程序中不经常使用此文件选择功能,我希望主程序集尽可能小以减少启动时间。我还希望能够在其他应用程序中重复使用此文件选择/下载组件。
我想弄清楚的一件事是,当用户选择文件并将其下载时,我将执行GoBack()以返回调用页面。在调用页面上,我需要知道用户是否已经下载了一个文件,或者是否只是按下后退按钮就取消了操作。我认为显而易见的事情可能只是检查隔离存储中文件是否存在,但这对我来说只是一点点麻烦。
我也考虑过Messenger,但我不确定它在两个程序集中是如何工作的。
任何建议都将受到赞赏。
由于
答案 0 :(得分:1)
如果不查看代码,很难知道。但是,我建议您可以将值传回页面,具体取决于您是否已成功下载文件。使用以下值导航(根据下载成功传递true或false):
NavigationService.Navigate(new Uri(("/Page.xaml?download=true", UriKind.Relative));
然后按如下方式评估目的地中的页面:
string download = "";
if (NavigationContext.QueryString.TryGetValue("download", out imageurl))
{
}