У меня есть приложение UWP для Windows 10 с подключенным MVVM Light. Я храню ViewModelLocator в App.Resources. Когда у меня в App.Resources есть только ViewModelLocator, все работает нормально.
<Application.Resources>
<viewModel:ViewModelLocator x:Key="Locator" />
</Application.Resources>
Как только я добавляю String, Converter или что-то подобное, приложение не падает, но конструктор ViewModelLocator больше не вызывается. Никаких ошибок или исключений не возникает, просто ResourceDictionary не загружается или дает сбой во время загрузки.
<Application.Resources>
<viewModel:ViewModelLocator x:Key="Locator" />
<x:String x:Key="SampleString">Hello</x:String>
</Application.Resources>
Если я добавляю Style, DataTemplate, Brush, Color - все работает нормально.
Раньше не замечал такого поведения на Windows Phone 8, Silverlignt или WPF. Перемещение стилей или объектов в отдельные ResourceDictionaries и загрузка их с помощью MergedDictionaries не помогло.
Я хотел бы иметь список объектов в ResourceDictionary, чтобы все конструкторы этих объектов вызывались автоматически при запуске приложения. Пожалуйста, порекомендуйте.
P.S.: Даже два одинаковых конвертера не работают, а один создается без проблем
<Application.Resources>
<!--<viewModel:ViewModelLocator x:Key="Locator" />-->
<converters:StringFormatConverter x:Key="StringFormat1" />
<converters:StringFormatConverter x:Key="StringFormat2" />
</Application.Resources>
В поисках примера использования ResourceDictionary нашел аналогичный вопрос: Инициализация объединенного ResourceDictionary в приложении UWP а>