2010-06-21 3 views
5

Avec la définition de ressource suivanteReferencing Nested type dans Visual Studio 2008 XAML Designer

<ObjectDataProvider MethodName="GetValues" ObjectType="{x:Type sys:Enum}" x:Key="AccountTypeValues"> 
    <ObjectDataProvider.MethodParameters> 
     <x:Type TypeName="domain:Account+AccountType" /> 
    </ObjectDataProvider.MethodParameters> 
</ObjectDataProvider> 

le designer se plaint que "Type 'compte + AccountType' n'a pas été trouvé." Cependant, le type imbriqué existe et le code est conforme et s'exécute sans problème. Puisque le concepteur pense que le code XAML est incorrect, il n'affiche pas de rendu graphique du code XAML.

Que dois-je faire pour que le concepteur reconnaisse Account + AccountType comme valide? J'aimerais vraiment que la partie visuelle du concepteur fonctionne.

Merci, Ben

Répondre

4

Il ressemble à ceci est un bogue connu dans Visual Studio. De http://social.msdn.microsoft.com/forums/en-US/wpf/thread/12f3e120-e217-4eee-ab49-490b70031806/:

Nous avons eu quelqu'un regarde l'utilisation de {x: type Foo + Bar} modèle et tester dans VS2010 et Blend4. Il semble que cela fonctionne correctement à l'exécution, CompileTime, dans le mélange 4, mais échoue dans WPF Designer de VS2010.

Nous avons classé un bug, et l'avons acheminé vers l'équipe WPF Designer.

Voir aussi http://connect.microsoft.com/VisualStudio/feedback/details/361509/xaml-designer-cannot-handle-typename-with-nested-classes.

Vous pouvez créer une propriété statique appelant Enum.GetValues(typeof(Account.AccountType)) et lier à celle-ci au lieu d'utiliser un ObjectDataProvider. Ou, si vous contrôlez les types, vous pouvez déplacer l'énumération en dehors de la classe.