我有一个插入了MVVM Light的Windows 10 UWP应用程序。
我将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>

如果添加样式,数据模板,画笔,颜色-一切正常。

以前没有注意到Windows Phone 8,Silverlignt或WPF上的行为。
移动样式或对象以分离ResourceDictionaries并使用MergedDictionaries加载它们并没有帮助。

我想在ResourceDictionary中有一个对象列表,以便在应用程序启动时自动调用这些对象的所有构造函数。
请指教。

PS:
即使是两个类似的转换器也不起作用,而一个转换器的创建没有任何问题
<Application.Resources>
    <!--<viewModel:ViewModelLocator x:Key="Locator" />-->
    <converters:StringFormatConverter x:Key="StringFormat1" />
    <converters:StringFormatConverter x:Key="StringFormat2" />
</Application.Resources>

寻找一个ResourceDictionary用法的示例,发现了类似的问题:
Merged ResourceDictionary initalization in UWP app

最佳答案

这都是由于延迟初始化。我做了一些实验,弄清楚了这张照片。希望您能理解。
http://screencast.com/t/mxyBGBDuZ

关于xaml - 当我向其添加第二个对象时,未加载UWP ResourceDictionary,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34466035/

10-13 04:25