现在,我正在研究我的第一个WP7应用程序并遇到了一些问题,尽管我在网上找到了我能找到的内容,但我仍无法回答这些问题。请考虑具有主页面,参数页面和结果页面的应用程序。在参数页面中,用户可以在各种文本框中输入或更新数字。点击后退按钮会将用户带回主页面,其中有一个名为“计算”的按钮。点击该按钮应该获取数据,使用它执行计算并将用户带到结果页面,显示带有结果的网格。
在一个名为Calculator.cs的文件中,我在名为Models的文件夹中有一个名为Calculator的类。我还在ViewModels文件夹和相应的MainPage.xaml中有我的MainViewModel.cs,ParametersViewModel.cs和ResultsViewModel.cs文件,以及名为Views的文件夹中的Parameters.xaml和Results.xaml。我假设所有数据都将在Calculator类的实例中被操作,然后返回结果集并将其定向到Results.xaml。我只是不知道在哪里实例化Calculator类,传递数据,然后检索结果。我也有些困惑,在计算完成后我将如何触发自动导航到结果页面。
对此的任何帮助将不胜感激。
更新:Passing a complex object to a page while navigating in a WP7 Silverlight application有关于同一主题的更多信息。我可以进入App.xaml.cs并添加如下内容:
public class Foobar
{
public string barfoo = "hah!";
}
public static Foobar myfoob = new Foobar();
然后从ViewModel页面访问它,例如AboutViewModel.cs,像这样:
public AboutViewModel()
{
string goo = App.myfoob.barfoo;
}
但在这一点上,我仍然不确定可能产生的不可预见的影响。我将在这一点上解决序列化/逻辑删除问题,看看这种方法或跨页面使用相同的DataContext会发生什么。否则,上面链接中的一个海报提到序列化params并在页面之间传递它们。我担心的是,HTTP GET是否存在字符限制。似乎有:URI Limits in Silverlight
答案 0 :(得分:1)
当然有很多可能的设计 - 其中很多都是以不同的方式正确的!
这是我可能会使用的一个:
其他解决方案绝对可用 - 有兴趣阅读其他人建议和喜欢的内容。
顺便说一下,在结果页面上需要注意的一件事是墓碑 - 这可能是一个有趣的挑战!