2013-11-24 85 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行交換之外? –

相關問題