2012-04-12 84 views
0

我已经实现了WPF导航服务从一个视图导航到另一个。 我通过使用ViewModelLocator来实现这一点,ViewModelLocator每次接收到合适的“Galasoft Messenger”时都负责从视图导航到另一个视图。MVVM Light - 显示当前视图?

好的。

现在,有了很多Views-ViewModels对,我决定创建一个在某些视图中共享(包含在XAML中)的用户控件。 这个UserControl有它自己的ViewModel和一些属性来设置它的外观取决于当前显示的View。

如何从当前显示的视图(在用户控件中)访问UserControl的ViewModel的属性?

还有更多,我可以如何(以及在​​哪里)确定当前显示的视图?

我可以张贴一些代码,以帮助如果需要的话,但我想答案很简短,但不知何故,我错过了一些东西......

谢谢。

大号

回答

0

当我主持的用户控件,我想访问视图模型我通常在this答案使用勾搭成一个数据绑定的DataTemplate一个ContentControl中等等。如果您需要切换视图模型使用的视图,可以使用this答案中的触发器。

使用该设置,您将能够设置用户控件的视图模型所需的所有属性,并知道用户控件正在使用哪个视图。

+0

好的,但用户控制这种方式并不需要它自己的viewmodel,我说得对吗?在你的场景中,你可以对同一视图模型有几个视图... – zero51 2012-04-13 06:55:43

+0

这个设置将允许多个视图具有相同的视图模型。如果您有多个页面,每个页面通常都会有它自己的视图模型,并且用户控件用户控件将有一个单独的视图模型,以便用户控件的功能可以与托管它的页面分离。 – Erick 2012-04-13 13:28:28