【发布时间】:2009-06-22 16:45:24
【问题描述】:
我有一个 WPF 应用程序,它有一个 MainView.xaml 窗口,它在运行时加载 许多页面对象,将它们加载到 ViewModels 中,并且在菜单中动态显示。
我的 MainViewModel 具有 ViewModels 的 ObservableCollection,我将它们分别绑定到 MainView.xaml 文件中相应的 Views。
但是,有没有办法自动化这样我就不必每次添加页面时都进行这些手动输入?
<Window.Resources>
<DataTemplate DataType="{x:Type vm:PageItemManageCustomersViewModel}">
<v:PageItemManageCustomersView/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:PageItemManageEmployeesViewModel}">
<v:PageItemManageEmployeesView/>
</DataTemplate>
<DataTemplate DataType="{x:Type vm:PageItemReportsViewModel}">
<v:PageItemReportsView/>
</DataTemplate>
</Window.Resources>
这难道不是“ServiceLocator”或“Container”应该做的事情,将 View 连接到 ViewModel 吗?我读到以上是匹配 MVVM 模式中的 ViewModel 和 View 的常用方法,但对我来说它是bit static。如有任何想法,将不胜感激。
【问题讨论】: