我一直在学习 MVVM 模式,参考了 Josh Smith 的文章,现在我想创建一个经典布局,并在右侧添加一些链接(通过命令管理),这样当我点击其中一个链接时,就可以在选项卡控件中显示我的视图(其中包含 ContentControl)。如果我使用特定的 View 和 ViewModel 的 DataTemplate 来显示屏幕上要显示的内容,那么这很简单。
但是,我希望有更通用的方案。我的主窗口不应该知道特定的视图或特定的视图模型。它只需要知道绑定到某些命令并具有选项卡控件,显示“某个视图”。每个示例,包括Josh Smith的文章,似乎都有限制的视图和视图模型宇宙,这对于样本来说非常好。
那么,如何告诉我的ContentControl,会有一些视图(及其相应的viewModel)出现,而不是那么具体(没有将具体类型“烧”到mainView中)?
此致 Rodrigo
附:我已经尝试过基础ViewModel和Base View,但似乎不起作用。
<!-- this section into my MainWindow's resources file -->
<DataTemplate xmlns:vm='clr-namespace:WpfFramework.ViewModels'
xmlns:vw='clr-namespace:WpfFramework.Views'
DataType="{x:Type vm:MySpecificViewModel }" >
<vw:MySpecificView />
</DataTemplate>
但是,我希望有更通用的方案。我的主窗口不应该知道特定的视图或特定的视图模型。它只需要知道绑定到某些命令并具有选项卡控件,显示“某个视图”。每个示例,包括Josh Smith的文章,似乎都有限制的视图和视图模型宇宙,这对于样本来说非常好。
那么,如何告诉我的ContentControl,会有一些视图(及其相应的viewModel)出现,而不是那么具体(没有将具体类型“烧”到mainView中)?
此致 Rodrigo
附:我已经尝试过基础ViewModel和Base View,但似乎不起作用。
<Application.Resources>
中。另一种选择是将DataTemplates放入ResourceDictionary中,并在运行时将ResourceDictionaries加载到应用程序的MergedDictionaries中。如果ResourceDictionaries是动态加载或存在于其他dll中,则我使用此方法。(我还修复了链接) - Rachel