【发布时间】:2016-03-31 16:19:46
【问题描述】:
我有一个适用于 Windows 10 的 UWP 应用程序,其中插入了 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>
如果我添加样式、数据模板、画笔、颜色 - 一切正常。
以前在 Windows Phone 8、Silverlignt 或 WPF 上没有注意到这种行为。 将样式或对象移动到单独的 ResourceDictionaries 并使用 MergedDictionaries 加载它们没有帮助。
我想在 ResourceDictionary 中有一个对象列表,以便在应用启动时自动调用这些对象的所有构造函数。 请指教。
附注: 甚至两个类似的转换器都不起作用,而创建一个没有任何问题
<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
【问题讨论】:
标签: xaml mvvm mvvm-light uwp windows-10-mobile