2008-12-22 6 views
1

Dans Silverlight, lorsque vous voulez créer un contrôle dynamique, vous devez ajouter les espaces de noms comme celui-ci (comme dans http://msdn.microsoft.com/en-us/library/cc189044(VS.95).aspx):charge de contrôle utilisateur dynamique et par défaut Namespace

XNamespace xmlns = "http://schemas.microsoft.com/client/2007"; 
    XElement textBlock2 = new XElement(xmlns + "TextBlock", 
     new XAttribute(XNamespace.Xmlns + "x", "http://schemas.microsoft.com/winfx/2006/xaml"), 
     ... 
     ); 

Mon problème est que j'ai un utilisateur le contrôle sous son propre nom, je dois donc écrire quelque chose comme

XNamespace myxmlns = "mynamespace"; 
XElement myelem = new XElement(myxmlns + "MyCtrl", ... 

Je puis ajouter que les espaces de noms crénelage comme

new XAttribute(XNamespace.Xmlns + "x", "http://schemas.microsoft.com/winfx") 

mais je n'arrive pas à comprendre comment ajouter l'espace de noms par défaut. Je reçois soit une erreur de compilation, soit une erreur d'exécution ("AG E PARSER MISSING DEFAULT NAMESPACE"), quoi que j'essaie.

J'ai réussi à le faire en construisant une grosse chaîne de ce dont j'ai besoin, mais je voudrais comprendre ce qui me manque.

Une idée?

Merci.

Répondre

0

De l'XNamespace docs here:

new XAttribute("xmlns", "http://http://www.adventure-works.com") 

Ajoutez juste comme un XAttribute.

+0

Merci, c'était trop facile ... J'adore Linq à Xml, mais le XNamespace n'est pas si intuitif pour moi. – devMomentum