Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF-基于另一个xmlns定义一个xmlns_Xml_Wpf_Namespaces_Hierarchy - Fatal编程技术网

WPF-基于另一个xmlns定义一个xmlns

WPF-基于另一个xmlns定义一个xmlns,xml,wpf,namespaces,hierarchy,Xml,Wpf,Namespaces,Hierarchy,有没有办法像这样声明命名空间: xmlns:views="clr-namespace:xxx.xxx.Views" xmlns:someNestedViews="views.SomeNestedView" 目标是加速嵌套/重复的xmlns声明,并使它们更易于阅读/维护。否,您需要包括整个CLR命名空间:xmlns:someNestedViews=“xxx.xxx.Views.SomeNestedView”。clr名称空间:语法将XAML名称空间映射到clr名称空间。它不会映射到另一个XML名称

有没有办法像这样声明命名空间:

xmlns:views="clr-namespace:xxx.xxx.Views"
xmlns:someNestedViews="views.SomeNestedView"

目标是加速嵌套/重复的xmlns声明,并使它们更易于阅读/维护。

否,您需要包括整个CLR命名空间:
xmlns:someNestedViews=“xxx.xxx.Views.SomeNestedView”
clr名称空间:
语法将XAML名称空间映射到clr名称空间。它不会映射到另一个XML名称空间

如果您是
视图
命名空间中类的作者,则可以使用指定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/"

我见过人们用XML实体来做这类事情

xmlns:x="&stem;/some.uri"

但是,尽管这是完全合法的,但如果我发现这种情况发生在我想处理的XML中,我会相当震惊。主要是因为它暗示名称空间可能会在某个时刻发生变化,而在名称空间可能发生变化时编写应用程序来处理XML只会让事情变得更加困难。

有趣的问题,我现在想知道!混淆一些简单的东西可能会带来比修复它们更多的问题。好的,我看看这是否有帮助;)如果有人想查找有关clr的信息: