Я изначально разместил это сообщение на странице MVVM Light CodePlex, но еще не получил ответа, так что надеюсь, что кто-то здесь может мне помочь. Вот вопрос:
Недавно я начал играть с MVVM (тоже новичок в WPF - довольно сложно изучить все это), и все отлично работало с моим экземпляром ViewModelLocator и привязкой времени разработки для VS2010, пока я не начал использовать MetroToolkit, предоставленный на CodePlex. Перед использованием инструментария у меня было следующее:
<Application.Resources>
<local:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</Application.Resources>
Все мои представления были хорошими, и все выглядело действительно хорошо. Я был удивлен тем, насколько легко человек, не имеющий опыта MVVM (или MVC), может начать работу. Затем я столкнулся с проблемой MetroToolkit, требующей объединенных словарей ресурсов, и теперь, что бы я ни пытался, я не могу заставить VS снова найти мой ViewModelLocator внутри App.xaml. Вот новая разметка:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Colors.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Animations.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Geometry.xaml"/>
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Generic.xaml"/>
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Buttons.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Scrollbar.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Scrollviewer.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/RadioButton.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/ProgressBar.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/ContextMenu.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Tooltip.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Checkbox.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Headings.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Textbox.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Combobox.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Slider.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/Expander.xaml" />
<ResourceDictionary Source="/MetroToolkit;component/Themes/Dark/TabControl.xaml" />
</ResourceDictionary.MergedDictionaries>
<local:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</ResourceDictionary>
</Application.Resources>
Я попытался дать словарю ресурсов ключ, добавив строку за пределами области (вверху и внизу - вызывает неприятные и очень бесполезные ошибки) и могу ' Мне нужно найти мой локатор ВМ. Он работает немедленно, когда я удаляю блок из App.xaml, но, исходя из моих очень ограниченных знаний о WPF, они мне нужны, если я хочу, чтобы стили были доступны для всех представлений в моем приложении.
Есть мысли? Это сводит меня с ума уже несколько часов.