如何忽略/覆盖父级的数据模板?

时间:2019-01-29 12:14:19

标签: wpf xaml mvvm datatemplate

情况

我为Frame创建了一些没有键的DataTemplates,因此如果我将Page中的ViewModel放在他的Content中,它可以理解应该显示哪个页面。那很好。但我想在我的ItemsControl.Rescources中使用这些Datatemplates,以便使Items看起来与众不同。

问题

如果我在App.Rescources中为这些ViewModels提供了一些数据模板,则无法在ItemsControl.Resources中使用/覆盖它们。我没有收到任何编译时错误,但是在启动程序后显示,项目内容不能为页面。

示例

<App>
   <App.Resources>

 <Datatemplate Datatype="{x:Type ViewModel1}">
    <Page1/>
 </Datatemplate>

 <Datatemplate Datatype="{x:Type ViewModel2}">
    <Page2/>
 </Datatemplate>

 </App.Resources>
 </App>

<ItemsControl>
   <ItemsControl.Resources>

 <Datatemplate Datatype="{x:Type ViewModel1}">
    <Button1/>
 </Datatemplate>

 <Datatemplate Datatype="{x:Type ViewModel2}">
    <Image1/>
 </Datatemplate>

 </ItemsControl.Resources>
</ItemsControl>

0 个答案:

没有答案