2013-11-24 86 views
22

我使用C#编写Windows 8.1应用程序,并使用GalaSoft提供的MVVM-Light Toolkit进行编程。每个字典条目必须具有关联的键属性

我只有下面的代码:

<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> 

错误“每个字典条目必须具有相关联的密钥属性”发生时,并且当我要么仅去除消失

<ResourceDictionary> 
     <ResourceDictionary.MergedDictionaries> 
      <ResourceDictionary Source="Resource Dictionaries/StandardStyles.xaml"/> 
     </ResourceDictionary.MergedDictionaries> 
    </ResourceDictionary> 

<vm:ViewModelLocator x:Key="Locator" xmlns:vm="using:Scedule.ViewModel" /> 

谁能告诉我这里的问题是什么?

+0

也许欺骗:HTTP:// stackoverflow.com/questions/16514137/errors-in-app-xaml-trying-to-use-mvvm-light-in-windows-phone-8-project – Bit

+0

'当我将视觉树移除或者 - >这句话对我来说毫无意义。 –

+0

@ M4TKD我已经检查过这个帖子,并没有帮助我。它被告知删除MergedDictionary,但这正是我想在这里实现的。 – FunkyPeanut

回答

40

注意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> 

所以这并不奇怪的话,那也是不是一个错误。如果你希望你的ResourceDictionary被视为一种资源,你当然必须提供一些Key它,但是在这种情况下,你真的想要的ResourceDictionary实例分配给Application.Resources

+2

这有效!并感谢您的解释 - 这是在回答问题时最重要的部分。非常感谢你:) – FunkyPeanut

+1

这不断给我错误,但工作后,我重新启动视觉工作室。 – CathalMF

+0

我很愚蠢或失明,但这里的区别是什么使得这项工作除了第2和第3行交换之外? –

相关问题