2013-02-16 10 views
6

Sto ottenendo la linea ondulata sotto la sesta riga di codice qui sotto dandomi l'errore indicato nel titolo. Ho appena effettuato la migrazione a VS 2012 e tutto ha funzionato bene in VS 2010. Mi sembra che il problema sia davvero altrove ... qualcuno può dirmi se c'è qualcosa di sbagliato in questo xaml?L'attributo "Chiave" può essere utilizzato solo su un elemento contenuto in "IDictionary"

<Application x:Class="SageWpf.App" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="clr-namespace:SageWpf"> 
    <Application.Resources> 
     <ResourceDictionary x:Key="rd"> 
      <ResourceDictionary.MergedDictionaries> 
       <ResourceDictionary> 
        <local:AppBootStrapper x:Key="bootstrapper"/> 
        <local:EffectConverter x:Key="effectConverter"/> 
        <local:VisibilityConverter x:Key="visibilityConverter"/> 
       </ResourceDictionary> 
      </ResourceDictionary.MergedDictionaries> 
     </ResourceDictionary> 


    </Application.Resources> 
</Application> 

risposta

10

<ResourceDictionary x:Key="rd"> non valido. Rimuovi il x:Key da lì.

Inoltre .. questo è un cattivo modo di strutturare le risorse. Cambiarlo in:

<Application.Resources> 
    <ResourceDictionary> 
     <local:AppBootStrapper x:Key="bootstrapper"/> 
     <local:EffectConverter x:Key="effectConverter"/> 
     <local:VisibilityConverter x:Key="visibilityConverter"/> 
    </ResourceDictionary> 
</Application.Resources> 

Utilizzare solo Dizionari uniti se si dispone di risorse definite in un altro file XAML e si desidera importare qui.

+0

Ok, mi chiedevo perché doveva essere così, ma l'ho lasciato da quando l'esempio di Caliburn.Micro lo ha fatto con il dizionario unito. Onestamente non mi ricordo completamente perché ho aggiunto x: Key = "rd" adesso, ma avrei potuto giurare che era per sistemare qualche altro errore che stavo ottenendo ... e sono abbastanza sicuro che funzionasse nel 2010 ma forse sto solo prendendo pillole pazze. Il problema ora è che sto ancora ricevendo lo stesso errore con la tua soluzione, ma la linea ondulata si trova sulla linea bootsrapper. –

+0

corretto. Vedi la mia modifica. –

+0

Ero parzialmente in errore ... l'errore sotto la linea del bootstrapper era qualcosa di completamente diverso e l'ho risolto; tuttavia sto ancora ricevendo lo stesso messaggio di errore originale. La linea ondulata è appena sotto il carattere '<' del tag di applicazione di apertura. –

Problemi correlati