2010-01-27 3 views
2

Dans mon application WPF, j'ai un contrôle TreeView défini dans mon XAML. J'ai ajouté une section TreeView.Resources qui ressemble à ceci:Erreur dans le XAML: Référence Type ne peut pas trouver le type du public

<TreeView.Resources> 
    <HierarchicalDataTemplate DataType="{x:Type local:FileGroup}" ItemsSource="{Binding protXMLFiles}"> 
     <TextBlock Text="{Binding Path=groupName}"/> 
    </HierarchicalDataTemplate> 
    <HierarchicalDataTemplate DataType="{x:Type local:protXMLFile}" ItemsSource="{Binding}"> 
     <TextBlock Text="{Binding Path=filename}"/> 
    </HierarchicalDataTemplate> 
</TreeView.Resources> 

Ci-dessus, je définissais l'espace de noms « local » avec une ligne en haut:

<Window x:Class="FileGrouper.SPWindow" ... xmlns:local="clr-namespace:FileGrouper"...> 

Lorsque je tente de charger mon XAML dans le concepteur Visual studio, je reçois un avertissement en haut du concepteur qui va:; « le document contient des erreurs qui doivent être corrigées avant que le concepteur peut être mis à jour Cliquez ici pour ouvrir la liste des erreurs. » le message d'erreur associé dans la liste d'erreurs va: "Type référence ne peut pas trouver le type public nommé 'FileGroup'". Toutes les erreurs de la liste d'erreurs disparaissent après la compilation et l'application s'exécute sans problème.

Néanmoins, je ne peux toujours pas utiliser le concepteur XAML à moins que je supprimer le < TreeView.Resources> bloc. Que se passe-t-il ici et comment puis-je le réparer?

+0

J'ai une solution temporaire dans laquelle je simplement déplacé le TreeView dans un contrôle personnalisé. Cela me permet d'utiliser encore le concepteur XAML pour la fenêtre. – Vivek

Répondre

1

Avez-vous besoin de spécifier le nom de l'assemblage dans la déclaration xmlns? L'IDE me le confie normalement.

+1

Oui. J'ai essayé juste en disant {x: Type FileGroup} et il ne compilerait pas. Il compile seulement quand je déclare l'espace de noms « local » et écriture {x: type local: FileGroup}. – Vivek

Questions connexes