2010-11-27 3 views
1

J'utilise VB.Net. J'ai un contrôle d'utilisateur de WPF appelé "NavigationPanel" que j'ai créé avec le concepteur. Par défaut, sa portée est Public. Quand je change sa portée à un ami dans le fichier NavigationPanel.xaml.vb, je reçois l'erreur suivante:Comment modifier l'étendue d'un contrôle utilisateur WPF créé par un concepteur de public à ami dans VB.Net?

Specified access 'Public' for 'NavigationPanel' does not match the access 'Friend' specified on one of its other partial types.

L'erreur s'applique à un fichier généré Designer appelle NavigationPanel.g.vb. Elle déclare NavigationPanel avec la ligne:

Partial Public Class NavigationPanel 

Si je change manuellement « Public » à « ami » sur cette ligne, ou si je supprime le fichier, le concepteur conserve le recréer avec « Public », et d'élever l'erreur . Je n'arrive pas à comprendre pourquoi le Designer pense qu'il est approprié de déclarer la classe avec la portée "Public", et je n'arrive pas à comprendre comment convaincre le Designer d'utiliser "Friend" à la place.

Répondre

1

Je pense que tout ce que vous pouvez faire est de le rendre public ou non public puisque l'API correspondante dans xaml est limitée à cela (public par défaut ... non public si vous le demandez): http://msdn.microsoft.com/en-us/library/ms754029.aspx Mise à jour: oui c'est possible . Lire le commentaire de T.C.

+0

Merci, Basarat Ali. La page que vous m'avez renvoyée contient la réponse (http://msdn.microsoft.com/fr-fr/library/ms754029.aspx). Cette réponse est: Pour modifier la portée d'un contrôle utilisateur à Friend, utilisez x: ClassModifier = "Friend" dans le fichier xaml. (En C#, l'équivalent est x: ClassModifier = "internal".) –