Xaml 从ViewModel中选择ItemTemplate

Xaml 从ViewModel中选择ItemTemplate,xaml,mvvm,windows-8,microsoft-metro,windows-runtime,Xaml,Mvvm,Windows 8,Microsoft Metro,Windows Runtime,我正在开发一个Windows 8应用商店应用程序,其中包含一个配置文件视图。在纵断面图中,我有一个ListView,它绑定到ViewModel中可观察的对象集合。我在视图模型中还有一个名为currentObject的属性 我需要能够为集合中与currentObject具有相同id的对象选择不同的项模板。在viewmodel中执行此操作的方法很简单,但是,我不确定如何启动该方法并将项模板名称返回到视图模型中的listview模板选择器属性 我使用的是c#、MVVM和caliburn.micro,因

我正在开发一个Windows 8应用商店应用程序,其中包含一个配置文件视图。在纵断面图中,我有一个ListView,它绑定到ViewModel中可观察的对象集合。我在视图模型中还有一个名为currentObject的属性

我需要能够为集合中与currentObject具有相同id的对象选择不同的项模板。在viewmodel中执行此操作的方法很简单,但是,我不确定如何启动该方法并将项模板名称返回到视图模型中的listview模板选择器属性

我使用的是c#、MVVM和caliburn.micro,因此我更愿意将此代码保留在代码后面


有什么建议吗?

有一种比使用DataTemplateSelector更简单的方法,如上面评论中的答案所示,如果您在XAML中使用DataTemplates,您可以使用DataType属性,您可以使用该属性将DataTemplate与类型关联(它应该是ViewModel)。因此,当呈现引擎遇到类型时,它知道要选择哪个数据模板

 <DataTemplate DataType="{x:Type vm:MyViewModel}">
 </DataTemplate>


这个答案对你有用吗?那应该可以了,谢谢!如果你觉得链接的答案有用的话,别忘了向上投票。