将EnumMatchToBooleanConverter添加到我的xaml文件的问题

我正在尝试遵循这个radiobutton教程

我创建了一个名为EnumMatchToBooleanConverter的类,它位于我的wpf项目的顶层。 它说放在一个window.resources里面这样:

   

我在usercontrol中使用它,所以我把它放在一个stackpanel中:

    

我有Microsoft Visual Studio Ultimate 2012,它给了我一个错误:

Windows Presentation Foundation(WPF)项目不支持EnumMatchToBooleanConverter。

关于我做错了什么的任何想法? 我不允许将它放在stackpanel.resources中吗?

我只是尝试将它放在grid.resources中

    

它说

找不到类型’EnumMatchToBooleanConverter’。 validation您是否缺少程序集引用,并且已构建所有引用的程序集。

它与我项目的其余部分位于同一名称空间中,所以我不确定它为什么找不到它。

更改

  

对于

  

您在XAML中引用的所有非内置类必须以其对应的xmlns前缀作为前缀。

HighCore说得对。 只是为了添加这个命名空间讨论,我想我会指出另一种方法可以帮助你使代码更具可读性或帮助你诊断某些控件/值转换器/等来自何处(即,它们来自哪个组件) )。 这种技术可以让你的XAML在他的博客中看起来像Christian一样( 没有 xmlns前缀):

  

本质上,您执行一些命名空间映射来合并这样的命名空间(仅当文件位于不同的程序集/项目中时才有效)。 因此,在上面的示例中,您已将一个命名空间映射到默认的xmlns,因此您不需要XAML中的任何前缀。

我还在试图弄清楚采取这种技术还有多远, 保罗斯托维尔谈到将其推向极端,就像我上面所说的那样。

即使你最终没有将它应用到那个程度,如果你正在查看其他人的Xaml并且他们已经应用了这样的映射,那么了解它可能会派上用场。 知道这会提醒您查找AssemblyInfo.cs文件并检查映射并可能帮助您跟踪控制/值转换器/等实际所在的位置。