ResourceDictionary с MVVM и Prism

#c# #silverlight-4.0 #mvvm #prism #resourcedictionary

#c# #silverlight-4.0 #mvvm #prism #resourcedictionary

Вопрос:

Я создал проект Prism с одним модулем. В модуле я определил несколько представлений. Я хочу использовать ResourceDictionary для оформления элементов пользовательского интерфейса.

Однако … если я включу следующий код в View1.xaml, я получу следующую ошибку

Предупреждение 1 Разработчик не поддерживает загрузку словарей, которые смешивают элементы ‘ResourceDictionary’ без ключа и другие элементы в той же коллекции. Пожалуйста, убедитесь, что свойство ‘Resources’ не содержит элементов ‘ResourceDictionary’ без ключа или что элемент ‘ResourceDictionary’ является единственным элементом в коллекции.

Вот код:

 <UserControl.Resources>                
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="../Resources/ResourceDictionary.xaml"/>
        </ResourceDictionary.MergedDictionaries>        
    </ResourceDictionary>
</UserControl.Resources>
  

Если я включу код в файл App.xaml, стиль будет выглядеть примененным в конструкторе, но при запуске проекта я получаю следующую ошибку:

Не удается найти ресурс с именем / ключом

Есть ли у вас какие-либо полезные советы по использованию стилей ResourceDictionary с Prism и MVVM?

Спасибо

Комментарии:

1. Есть ли у вас ресурс без ключа в словаре?

2. Нет … у всех ресурсов есть ключ. Однако … теперь я добавил ResourceDictionary внутри сетки.. нравится Grid.Resources и это работает .. но я не понимаю, почему это не позволяет это в Usercontrol. Ресурсы

3. Переносим его из UserControl. Ресурсы для Grid.Resources также работали для меня, хотя я тоже понятия не имею, почему.

4. Убедитесь, что каждый ресурс в вашем ResourceDictionary.xaml имеет атрибут x:key или x:Name, и убедитесь, что эти имена или ключи содержат только буквы, десятичные цифры и _

5. Кроме того, попробуйте проверить уникальность ключа

Ответ №1:

Возможно, у этого парня здесь была похожая проблема: http://blog.caraulean.com/2011/09/13/how-to-make-caliburn-micro-and-silverlight-resources-in-mergeddictionaries-play-nicely-together/ Есть проверка

Комментарии:

1. Ссылка больше не действительна 🙁