动态加载用户控件和默认命名空间

时间:2008-12-22 18:40:57

标签: silverlight xaml user-controls

在Silverlight中,当您想要动态创建控件时,必须添加这样的命名空间(如http://msdn.microsoft.com/en-us/library/cc189044(VS.95).aspx中所示):

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"),
        ...
        );

我的问题是我在自己的命名空间中有一个用户控件,所以我必须编写像

这样的东西
XNamespace myxmlns = "mynamespace";
XElement myelem = new XElement(myxmlns + "MyCtrl", ...

然后我可以添加像这样的别名命名空间

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

但我无法弄清楚如何添加默认命名空间。无论我尝试什么,我都会遇到编译错误或运行时错误(“AG E PARSER MISSING DEFAULT NAMESPACE”)。

我成功地建造了一大堆我需要的东西,但我想了解我所缺少的东西。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:0)

来自XNamespace docs here

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

只需将其添加为XAttribute。