我使用C#和GalaSoft的MVVM-Light Toolkit编写Windows 8.1 App。
我所拥有的只是以下代码:
<Application.Resources>
<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:Scedule.ViewModel" />
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource Dictionaries/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
错误&#34;每个词典条目必须具有关联的键属性&#34;发生,只有当我删除
时才会消失 <ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource Dictionaries/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
或
<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:Scedule.ViewModel" />
谁能告诉我这里的问题是什么?
答案 0 :(得分:45)
请注意,Application.Resources
需要ResourceDictionary
的实例,因此您必须执行以下操作:
<Application.Resources>
<ResourceDictionary>
<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:Scedule.ViewModel" />
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="Resource Dictionaries/StandardStyles.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
所以它一点都不奇怪,它也不是一个bug。如果您希望将ResourceDictionary
视为资源,那么您当然必须为其提供一些Key
,但在这种情况下,您确实希望将ResourceDictionary
的实例分配给Application.Resources