Любому объекту, помещенному в ResourceDictionary
, должен быть присвоен ключ. Этот ключ используется WPF для извлечения объекта, либо неявно (например, через стиль по умолчанию), либо явно (например, через StaticResource
, DynamicResource
).
В приведенном выше примере вы создали ResourceDictionary
без ключа, отсюда и ошибка. Синтаксис, который вы ищете:
<Window.Resources>
<ResourceDictionary> <!-- Create a resource dictionary here -->
<XmlDataProvider x:Key="Maschinen"> <!-- Put this into the dictionary -->
<x:XData xmlns="">
<machines>
<machine name="alte Maschine"/>
<machine name="neue Maschine"/>
</machines>
</x:XData>
</XmlDataProvider>
<ResourceDictionary.MergedDictionaries> <!-- Merge into this dictionary another dictionary ... -->
<ResourceDictionary Source="ShinyRed.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Window.Resources>
Имейте в виду, что первый тег ResourceDictionary
в приведенном выше фрагменте неявен, если вы его пропустите. В результате в ваших исходных примерах тег <ResourceDictionary>
сам по себе определяет новый второй словарь (без ключа), который будет добавлен во внешний словарь.
Надеюсь, это поможет!