有没有办法声明这样的命名空间:
xmlns:views="clr-namespace:xxx.xxx.Views"
xmlns:someNestedViews="views.SomeNestedView"
目标是加快嵌套/重复的xmlns声明的速度,并使它们更易于阅读/维护。
答案 0 :(得分:1)
否,您需要包括整个CLR名称空间:xmlns:someNestedViews="xxx.xxx.Views.SomeNestedView"
。 clr-namespace:
语法将XAML命名空间映射到CLR命名空间。它不会映射到另一个XML名称空间。
如果您是Views
命名空间中的类的作者,则可以使用XmlnsDefinitionAttribute指定XAML命名空间和几个不同的CLR命名空间之间的映射,例如:
[assembly: XmlnsDefinition("http://yourlibrary.com/", "xxx.xxx.Views.")]
[assembly: XmlnsDefinition("http://yourlibrary.com/", "xxx.xxx.Views.SomeNestedView")]
这减轻了XAML的负担:
xmlns:viewsAndNestedViews="http://yourlibrary.com/"
答案 1 :(得分:0)
我已经看到人们将XML实体用于此类事情
xmlns:x="&stem;/some.uri"
但是,尽管这完全是合法的,但是如果发现要使用的XML发生这种情况,我会感到非常震惊。主要是因为它暗示了名称空间可能会在某个时刻发生更改,并且在名称空间可能发生更改时编写应用程序以处理XML只会使事情变得更加困难。