2013-11-24 7 views
22

Ich programmiere w Windows 8.1 App mit C# und dem MVVM-Light Toolkit von GalaSoft.Jeder Wörterbucheintrag muss ein zugehöriges Schlüsselattribut haben

Alles, was ich habe, ist der folgende Code:

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

Der Fehler „Jeder Wörterbucheintrag muss eine zugehörige Schlüsselattribut haben“ auftritt und verschwindet erst, wenn ich entweder

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

oder

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

Kann mir jemand sagen, was das Problem hier ist?

+0

Vielleicht ein Betrogene zuweisen möchten: http: // stackoverflow.com/questions/16514137/errors-in-app-xaml-trying-to-use-mvvm-light-in-windows-phone-8-project – Bit

+0

'wenn ich entweder den visuellen Baum bis zu entfernen oder die '- > Dieser Satz ergibt für mich keinen Sinn. –

+0

@ M4TKD Ich habe diesen Beitrag bereits überprüft und das hilft mir nicht weiter. Es wird gesagt, das MergedDictionary zu entfernen, aber genau das versuche ich hier zu implementieren. – FunkyPeanut

Antwort

40

Beachten Sie, dass Application.Resources eine Instanz von ResourceDictionary erfordert, so dass Sie etwas zu tun haben: an allen

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

So ist es nicht seltsam, es ist auch kein Fehler. Wenn Sie Ihre wollen ResourceDictionary als Ressource behandelt zu werden, Sie natürlich haben einige Key dafür zu sorgen, aber in diesem Fall wirklich eine Instanz von ResourceDictionary zum Application.Resources

+2

Das funktioniert! Und danke für die Erklärung - das ist der wichtigste Teil, wenn die Dinge beantwortet werden. Vielen Dank :) – FunkyPeanut

+1

Dies hielt mich Fehler, aber arbeitete, nachdem ich Visual Studio neu gestartet. – CathalMF

+0

Ich bin dumm oder blind, aber was ist der Unterschied hier, der diese Arbeit anders als ein Tausch der Zeilen 2 und 3 gemacht hat? –

Verwandte Themen