Как игнорировать / переопределить шаблоны данных от родителя? - PullRequest
0 голосов
/ 29 января 2019

Ситуация

Я создал несколько шаблонов данных БЕЗ КЛЮЧЕЙ для моего фрейма, чтобы он мог понять, какую страницу он должен показать, если я добавлю ViewModel из Page в его Контент.Это отлично работает.Но я хочу использовать эти Datatemplates в моем ItemsControl.Rescources, чтобы Предметы могли выглядеть по-другому.

Проблема

Если у меня уже есть несколько таблиц данных для этих ViewModels в моем App.Rescources, тогда я не могу использовать / переопределить их в моем 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>
...