XML命名空间'clr-namespace:YYY'中不存在标记'XXX'

Álv*_*cía 15 wpf xaml

我已经实现了一个转换器将Int32转换为String,以便能够将属性绑定到textBox.

我在命名空间MyApp.Converters中实现了这个转换器,它被称为Int32ToStringConverter.

然后,在我的axml中,我添加了对我的转换器的引用,如下所示:

<Window x:Class="MusicaDB.Views.PrincipalView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:i="namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
        **xmlns:converter="clr-namesapce:MyApp.Converters, aseembly=MyApp**">
Run Code Online (Sandbox Code Playgroud)

后来,在windows.Resources我有:

<Window.Resources>
        <**converter:Int32ToStringConverter** x:Key="Int32ToStringConverter" />
</Window.Resources>
Run Code Online (Sandbox Code Playgroud)

我得到错误,标签Int32ToString转换器不存在于命名空间MyApp.Converters,assembly = MyApp中.

我有项目在本地硬盘驱动器,在项目属性中,目标.NET是框架4.0,而不是框架4.0客户端配置文件,我尝试清除解决方案并重新编译但问题仍然存在.

主要是,这是我总能找到的两个解决方案,但不解决我的问题.

Dan*_*ser 27

此问题的另一个可能的解决方案是您在项目和库中没有使用相同版本的.Net.

  • 很想将此标记为答案.由于我的代码生成,它没有错,这个答案解决了我的问题 (2认同)

H.B*_*.B. 26

这里有三个修复:

  1. 没有空格 - > xmlns:converter="clr-namesapce:MyApp.Converters,aseembly=MyApp"
  2. 没有拼写错误 - > xmlns:converter="clr-namespace:MyApp.Converters,assembly=MyApp"
  3. 正确的分隔符 - > xmlns:converter="clr-namespace:MyApp.Converters;assembly=MyApp"

文档:

请注意,将clr-namespace标记与其值分隔的字符是冒号(:),而将程序集标记与其值分隔的字符是等号(=).这两个令牌之间使用的字符是分号.此外,请勿在声明中的任何位置包含任何空格.

  • @WaldoAlvarez:不是,这只是使用愚蠢默认值的MSDN,如果您看到"此主题不再可用",请从"其他版本"下拉列表中选择以前的版本. (2认同)

epp*_*dog 13

我正在探索为什么会发生这种情况,但如果您的转换器位于主程序集中,则从xmlns:converter标记中删除assembly =应该删除该构建错误.


Hug*_*ugo 5

作为记录...我遇到了类似的问题,如果我从 XAML 中删除了“; assembly = X”部分,它就可以正常工作

但其实不太明白其中的原因。

正如此博客中所建议的: http://zoomicon.wordpress.com/2012/07/02/fix-the-tag-xxx-does-not-exist-in-xml-namespace-clr-namespaceyyy/#comment-7761

  • 显然,如果它位于同一个程序集中,则不要放置它。如果不是,那就放它吧。 (2认同)