我试图找出将 View 的数据上下文设置为 View 模型的许多不同方法。
我此刻正在关注的一个是这样的:
我有我的 MainWindowResource:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:vw="clr-namespace:DemoStuffPartII.View"
xmlns:vm="clr-namespace:DemoStuffPartII.ViewModel">
<DataTemplate DataType="{x:Type vm:PersonViewModel}">
<vw:PersonView />
</DataTemplate>
但这也是我立即陷入困境的地方。我知道我应该在 View 中使用 ContentControl。但是配置它的最佳方法是什么?如何解决这个问题?
最佳答案
这就是您可以在 MVVM 应用程序中启用 ViewSwitching 导航的方式。
其他缺失的位是:
在 View 中 ->
<ContentControl Content="{Binding CurrentPage}" />
在 ViewModel -> (伪代码)
Prop ViewModelBase CurrentPage.
但是请注意,如果您只想将 ViewModel 连接到一个 View ,您可以完全删除整个 DataTemplate-ContentControl,然后执行 this.DataContext = new SomeViewModel();在代码隐藏中。
我所知道的将 VM 连接到 View 的最简洁的方法是使用 ViewModelLocator 模式。谷歌 View 模型定位器。
关于wpf - Resource 中的 DataTemplate 将 ViewModel 设置为 View,但随后,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5498989/