mercredi 19 août 2009

Xaml, Enumeration et intellisense !

Un petit post bien sympa pour se faciliter la vie...

Lorsque nous construisons des contrôles graphiques (exemple : librairie de contrôles), il arrive que nous utilisions des propriétés qui retournent des membres d'énumération.

Lorsque l'on vient à déclarer ces contrôles dans un fichier xaml, et que l'on appelle la propriété en question pour lui affecter une valeur ...
rien ne se passe : l'intellisense est dans les choux !

Pour corriger cet "intelli-ignorance", il suffit d'appliquer un geste très simple :

1. déclarer le namespace dans le fichier AssemblyInfo.cs de la façon suivante :
[assembly: XmlnsDefinition("http://monTruxAMoi.com/wpf/", "nameSpaceDeLenumeration")]

XmlnsDefinition provient de System.Windows.Markup.

2. Je compile,

3. Enfin, dans le Xaml ou je désire utiliser mon contrôle, j'ajoute une déclaration xmlns:monTrux="http://monTruxAMoi.com/wpf/"

Hélas cela ne fonctionne "correctement" qu'en WPF ...
En Silverlight (même 3), Visual Studio ne résoud pas correctement les using dans les fichiers xxx.g.cs
du coup, on perd l'intellisense côté C# ... pas pratique !

1 commentaire:

  1. Un post utile et efficace. Je ne connaissais pas cette possibilité. Merci pour l'astuce!

    A+
    Charles

    RépondreSupprimer