La création d'une instance d'une classe imbriquée dans le code XAML

dans un XAML fichier (WPF UserControl), est-il un moyen de faire référence à un intérieur de la classe "B" défini dans une autre classe "A" ?

public class A
{
    public class B
    {
    }
}

Quelque chose comme :

<local:A.B ... />

Cette syntaxe ne fonctionne pas parce que "B" est interprétée comme une propriété nommée "B" dans la classe "A".

J'ai essayé plus exotiques syntaxes comme les "::" ou "+", mais aucune ne semble fonctionner.

Je suis actuellement à l'aide Silverlight 4 avec VS2010.

Merci d'avance pour votre aide.

  • est de classe B, un autre contrôle?
  • Non, c'est une commande, mais pourraient l'être.
  • Je suis pas très familier avec WPF commandant, dans la réponse à cette question, l'opérateur point est utilisé pour obtenir la commande: stackoverflow.com/questions/601393/custom-command-wpf Mais, les commandes sont définies dans une classe différente.
  • Pour les entreprises commande c'est en effet l'approche standard, mais ma commande ici sont de l'INTERFACE utilisateur des commandes qui ne sont pas réutilisables dans un autre contexte que celui de mon actuel de l'INTERFACE utilisateur.
  • Je crois que la réponse n'était pas identifié correctement. Voir mise à jour à ma question
  • Ce n'est pas une réponse directe à la question, mais j'ai résolu un très liées problème: j'ai voulu passer à une classe imbriquée instance de <d:Style.DataContext> tag (exactement sans d:DesignInstance extension de balisage parce que sinon VS designer montre des erreurs). Puis j'ai compris que je peux spécifier <x:Type Type="nmspc:A+B" /> à la place, et il sera trop de travail. Peut-être que ce sera utile pour quelqu'un.
  • . se réfère à une propriété; pas sûr pourquoi XAML ne pouvais pas également rechercher une classe imbriquée, mais il ne le fait pas. Une classe imbriquée peut être représentée de la à l'intérieur d'une chaîne de caractères (par exemple, la valeur d'une propriété), à l'aide de + au lieu de .. Comme un nom d'élément (comme indiqué dans la question), + n'est pas permis, car le résultat ne serait plus valide XML; + n'est pas un nom valide de caractère.

InformationsquelleAutor Pragmateek | 2010-11-24