1

我是 .NET/c# 领域的新手,我正在尝试开发 Windows Phone 8 应用程序。我有几页显示 Objects( ListPage) 的列表。所有这些页面都将具有过滤功能,使用 commom FilterPage

我需要的是将对象从 传递ListPageFilterPage. 我想使用 MVVM(MVVM 灯光模板)。我已经设法使用消息传递框架实现了几乎所有内容。我正在使用FilterMessage将对象传递到其构造函数中的 a 。和收听此消息ListPageFilterViewModelListPage导航到FilterPage并且FilterViewModel将从消息中获取对象。ListPage得到正确通知,但没有FilterViewModel得到通知,因为FilterViewModel仅在第FilterPage一次显示后才创建。

是否可以通过 App 启动来初始化 FilterViewModel?如果您认为这不是要走的路,请告诉我原因:)

提前致谢。

4

2 回答 2

1

在这种情况下,我所做的是将要传递到其他页面的实例添加到 PhoneApplicationService.Current.State 下的 Session 对象中。

另一方面,完成导航后,您可以提取实例,并且应该将其从状态中删除。

请注意,如果您的应用程序在 State 中有实例时进入后台,WP 将尝试序列化它们。

于 2013-04-07T13:00:16.717 回答
1

FilterViewModel我设法通过在构造函数中创建实例来使其工作。我ViewModelLocator不确定这是最好的方法。希望有更多经验的人与我们分享他的想法。

public ViewModelLocator()
{
    ServiceLocator.SetLocatorProvider(() => SimpleIoc.Default);

    SimpleIoc.Default.Register<FilterViewModel>();

    ServiceLocator.Current.GetInstance<FilterViewModel>();
}
于 2013-04-07T13:38:48.827 回答