Каждая запись в словаре должна иметь связанный ключевой атрибут
Я программирую приложение Windows 8.1 с помощью С# и MVVM-Light Toolkit от GalaSoft.
Все, что у меня есть, это код ниже:
<Application.Resources>
<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:Scedule.ViewModel" />
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource Dictionaries/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Ошибка "Каждая запись словаря должна иметь связанный ключевой атрибут" происходит и исчезает только тогда, когда я либо удаляю
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource Dictionaries/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
или
<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:Scedule.ViewModel" />
Может ли кто-нибудь сказать мне, в чем проблема?
Ответы
Ответ 1
Обратите внимание, что Application.Resources
требуется экземпляр ResourceDictionary
, поэтому вам нужно сделать что-то вроде этого:
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:Scedule.ViewModel" />
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource Dictionaries/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
Так что это не странно, это тоже не ошибка. Если вы хотите, чтобы ваш ResourceDictionary
рассматривался как ресурс, вы, конечно же, должны предоставить ему Key
, но в этом случае вы действительно хотите назначить экземпляр ResourceDictionary
для Application.Resources