我有4个视图模型(BaseViewModel,MainViewModel和两个显示不同视图:ViewModelMainPage,ViewModelWorkPage)和1个视图。我想在一个窗口上应用不同的视图。到目前为止,我已经在window.resources中创建了2个数据模板(每个模板用于他们自己的viewmodel)。在网格列0上有两个按钮可在它们之间切换,在网格列1中,将显示选定的数据模板。从这里开始,我不知道该怎么做。我真的很感激任何帮助。在MVVM上切换视图
谢谢。
我有4个视图模型(BaseViewModel,MainViewModel和两个显示不同视图:ViewModelMainPage,ViewModelWorkPage)和1个视图。我想在一个窗口上应用不同的视图。到目前为止,我已经在window.resources中创建了2个数据模板(每个模板用于他们自己的viewmodel)。在网格列0上有两个按钮可在它们之间切换,在网格列1中,将显示选定的数据模板。从这里开始,我不知道该怎么做。我真的很感激任何帮助。在MVVM上切换视图
谢谢。
你需要的是一个datatemplateselctor。有关如何使用选择器的示例,请参阅MSDN链接。
http://msdn.microsoft.com/en-us/library/system.windows.controls.datatemplateselector.aspx
你可以只扩展你有DataTemplate
的在你的父视图申报子视图的概念。
工作示例做得非常相似,你做什么都可以找到Here东西(请尝试下载样本项目“TwoViews”)。下载源代码并阅读文章。
您也可以通过This SO Question's Answer进行阅读,看看它在Model发挥作用时如何延伸。
This Codeplex sample对于MVVM的初学者来说也是相当不错的。
是啊谢谢,但我已经想通了。解决方案是为每个数据模板创建一个用户控件,然后为了在它们之间切换,我在主视图模型中使用了usercontrol viewmodel的一个实例。在XAML中,我创建了一个ContentControl并使用该实例的绑定。 – jonjohnson 2013-04-23 07:31:27
这正是答案中的所有链接所暗示的以及大声笑 – Viv 2013-04-23 07:46:31