WPF - 视图模型的自动视图解析

时间:2014-07-10 11:42:27

标签: wpf mvvm

我为Android创建了一个更容易使用MVVM模式的库。

在我的库中,我有一个特殊的ViewManager类负责解析给定视图模型的适当视图。让我举个例子:

ViewManager.register(ViewModel.class, View.class);  // ViewModel will be now presented by View.
// Now when, for example, tabbed view item will be "new ViewModel()"; it will automatically be presented by View.class

在WPF中实现这一目标的正确方法是什么,所以如果我将TabControl项目绑定到视图模型集合,它会自动解析相应的视图以从我的ViewManager显示它们?

1 个答案:

答案 0 :(得分:1)

您不需要任何代码在WPF中执行此操作...您可以通过在DataTemplate文件中声明App.xaml来简单轻松地执行此操作:

<DataTemplate DataType="{x:Type YourViewModelsPrefix:YourViewModel">
    <YourViewsPrefix:YourView />
</DataTemplate>
<DataTemplate DataType="{x:Type YourViewModelsPrefix:YourOtherViewModel">
    <YourViewsPrefix:YourOtherView />
</DataTemplate>
<DataTemplate DataType="{x:Type YourViewModelsPrefix:AnotherViewModel">
    <YourViewsPrefix:AnotherView />
</DataTemplate>

现在,只要Framework遇到这些视图模型类的实例,它就会呈现关联的视图。您可以使用ContentControl这样的属性来显示它们:

<ContentControl Content="{Binding YourViewModelProperty}" />