2009-06-22 48 views
1

我有具有MainView.xaml窗口,它加载众多页面对象在运行时,它们加载到的ViewModels,并将其显示动态菜单 WPF应用程序。如何动态地将ViewModels连接到相应的视图?

我MainViewModel有的ViewModels的ObservableCollection和我结合这些每到适当的意见在MainView.xaml文件。

但是,有没有一种方法来自动化这样,我不必每次添加页面时都要做这些手动条目?

<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> 

这不是东西,一个“服务定位”或“集装箱”应该做的事情,挂钩起来欣赏到的ViewModels?我读过以上是常用方式,以匹配MVVM模式中的ViewModels和Views,但它对我来说是位静态。将不胜感激任何想法。

+0

这里有一个答案:http://stackoverflow.com/questions/768304/wpf-mvvm-convention-over-configuration-for-resourcedictionary – 2009-06-22 16:47:07

回答

-1

另一种选择是使用一个类来根据某个键来解析ViewModel。然后,您可以在主视图中使用它来解析控件的正确视图模型。

public static class ViewModelFactory 
{ 
public ViewModelBase Create(string someKeyHere) 
{ 
    //Some logic to resolve a view model 
} 
} 
相关问题