我正在开发一个Silverlight导航项目。 MainPage
包含导航框架。在导航框架内,我的第一页称为LiveView
。 LiveView.xaml
包含用户控件NavigationControl
。我不确定我是否正确使用MVVM。
假设LiveView
使用视图模型LayoutsViewModel
。 LayoutsViewModel
适用于LiveView
和用户控件NavigationControl
中的元素。如何在LiveView
和NavigationControl
之间“共享”此视图模型?这甚至是正确的方法吗?
目前,我将LayoutsViewModel
的{{1}}属性设置为LiveView
的实例。然后,我将LayoutsViewModel
的{{1}}设置为DataContext
的同一个实例,如下所示:
NavigationControl
这样,我可以通过此媒体资源访问LayoutsviewModel
中的LayoutsViewModel = new LayoutsViewModel();
NavigationControl.DataContext = LayoutsViewModel;
,我可以通过LayoutsViewModel
访问LiveView
中的LayoutsViewModel
。这对我来说似乎不对,但它确实有效。
有没有办法在页面和子用户控件之间共享视图模型?我是以错误的方式接近这个吗?