【发布时间】:2011-01-31 17:28:34
【问题描述】:
现在,我正在开发我的第一个 WP7 应用程序并遇到了一些问题,尽管阅读了我可以在网上找到的内容,但我无法回答这些问题。请考虑一个具有主页、参数页面和结果页面的应用程序。在参数页面中,用户可以在各种文本框中输入或更新数字。点击后退按钮将用户带回主页,那里有一个名为“计算”的按钮。点击该按钮应该获取数据,对其进行计算,然后将用户带到结果页面,显示一个带有结果的网格。
在一个名为 Calculator.cs 的文件中,我在一个名为 Models 的文件夹中有一个名为 Calculator 的类。我在 ViewModels 文件夹中还有我的 MainViewModel.cs、ParametersViewModel.cs 和 ResultsViewModel.cs 文件以及对应的 MainPage.xaml,以及在名为 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 会发生什么。否则,上面链接中的一张海报提到序列化参数并在页面之间传递它们。我担心 HTTP GET 是否有字符限制。好像有:URI Limits in Silverlight
【问题讨论】:
标签: windows-phone-7 navigation viewmodel mvvm-light