我编写了一个使用多个视图的WPF GUI。我正在使用MVVM Light Toolkit来实现MVVM模式。
对于导航,我使用this机制,将主框架更改为NavigationWindow,将所有视图更改为Pages。
我在ViewModel构造函数中注入了导航服务,现在我可以在视图之间导航。
但是,我想在导航时在视图之间传输数据。导航窗口中有一个method,可以通过事件处理程序实现这一点。我已经在我的接口中实现了一个方法,但是我在导航的View模型上调用事件处理程序时遇到了问题。
有谁能告诉我如何在我的ViewModel中调用事件处理程序?
谢谢!
编辑:我试着打电话:
protected override void OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs e)
{
}
但我得到一个错误说:
OnNavigatedTo(System.Windows.Navigation.NavigationEventArgs)':否 找到合适的方法来覆盖
我已经清理了我的解决方案并尝试重建......
有什么想法吗?
EDIT2:
所以我发现在WPF .Net 4.5中,OnNavigatedTo事件消失了。我无法找出为什么以及如何称呼类似的东西。
答案 0 :(得分:1)
我还没有得到我的问题的答案所以我会尝试回答......
不要这么想......如果需要传输信息要么创建到相关VM的静态链接,要么在app类上留下静态删除。无论哪种方式,当显示视图时,订阅其中一个初始化/加载事件并在预定位置获取信息。