У меня есть проект библиотеки WPF, где у меня есть коллекция представлений и моделей представлений. В этом проекте я хочу реализовать ViewModelLocator ( VML ). Тем не менее, просматривая некоторые онлайн-ресурсы, может показаться, что мне нужен App.xaml и объявить мой Locator здесь.
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</ResourceDictionary>
</Application.Resources>
Тогда в моих представлениях (xaml) мне нужно назначить контекст данных
<UserControl.DataContext>
<Binding Path="FooViewModel" Source="{StaticResource Locator}"/>
</UserControl.DataContext>
Это имеет смысл для меня, если я работаю в приложении Windows WPF. Но как мне реализовать VML в моем проекте DLL? Я попытался создать файл App.xaml в моем dll-проекте и вставил ссылку на VML следующим образом:
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator" d:IsDataSource="True" />
</ResourceDictionary>
</Application.Resources>
Но когда я пытаюсь сослаться на мой Locator в моем файле FooViewModel.xaml, я получаю
System.Windows.Markup.XamlParseException
Exception: Cannot find resource named 'Locator'. Resource names are case sensitive.
Возможно ли иметь VML в проекте dll? Если так, что я пропускаю? Большое спасибо заранее!