当我向它添加第二个对象时,未加载 UWP ResourceDictionary
UWP ResourceDictionary is not being loaded when I add a second object to it
我有一个用于 Windows 10 的 UWP 应用程序,其中插入了 MVVM Light。
我在 App.Resources 中存储了一个 ViewModelLocator。
当我的 App.Resources 中只有一个 ViewModelLocator 时,一切正常。
<Application.Resources>
<viewModel:ViewModelLocator x:Key="Locator" />
</Application.Resources>
只要我添加一个字符串、转换器或类似的东西,应用程序就不会崩溃,但不再调用 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、Silverlingt 或 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 用法示例,发现类似问题:
尝试像这样将它们添加到资源字典中
<Application.Resources>
<ResourceDictionary>
<viewModels:ViewModelLocator x:Key="Locator"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="XAMLResources/Styles.xaml" />
<ResourceDictionary Source="XAMLResources/DataTemplates.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
如果您想查看完整示例,代码片段来自 GitHub https://github.com/AppCreativity/Kliva
上的存储库
您会注意到我们在 Styles.xaml 中添加了我们的转换器并且工作正常...
这都是因为惰性初始化。我做了一些实验并弄清楚了这张照片。我希望你能理解这个想法。
http://screencast.com/t/mxyBGBDuZ
我有一个用于 Windows 10 的 UWP 应用程序,其中插入了 MVVM Light。 我在 App.Resources 中存储了一个 ViewModelLocator。 当我的 App.Resources 中只有一个 ViewModelLocator 时,一切正常。
<Application.Resources>
<viewModel:ViewModelLocator x:Key="Locator" />
</Application.Resources>
只要我添加一个字符串、转换器或类似的东西,应用程序就不会崩溃,但不再调用 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、Silverlingt 或 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 用法示例,发现类似问题:
尝试像这样将它们添加到资源字典中
<Application.Resources>
<ResourceDictionary>
<viewModels:ViewModelLocator x:Key="Locator"/>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="XAMLResources/Styles.xaml" />
<ResourceDictionary Source="XAMLResources/DataTemplates.xaml" />
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
如果您想查看完整示例,代码片段来自 GitHub https://github.com/AppCreativity/Kliva
上的存储库您会注意到我们在 Styles.xaml 中添加了我们的转换器并且工作正常...
这都是因为惰性初始化。我做了一些实验并弄清楚了这张照片。我希望你能理解这个想法。 http://screencast.com/t/mxyBGBDuZ