Подтвердить что ты не робот

Каждая запись в словаре должна иметь связанный ключевой атрибут

Я программирую приложение 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" />

Может ли кто-нибудь сказать мне, в чем проблема?

4b9b3361

Ответ 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