请原谅noob问题,但我会围成一圈,需要答案......
无论如何,我一直在看这篇文章WPF: How to bind RadioButtons to an enum?,但我无法在XAML文件中识别转换器。
<Window x:Class="Widget.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
Title="Widget" Height="366" Width="588" WindowStyle="SingleBorderWindow">
<Window.Resources>
<EnumBooleanConverter x:Key="enumBooleanConverter" />
</Window.Resources>
...
我有一个单独的文件,其中包含EnumBooleanConverter类,但上面的引用给出了以下错误:
错误1 XML命名空间“http://schemas.microsoft.com/winfx/2006/xaml/presentation”中不存在标记“EnumBooleanConverter”。
我尝试添加对程序集的引用,然后将标记附加到XAML但无效。
<Window x:Class="Widget.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:dg="http://schemas.microsoft.com/wpf/2008/toolkit"
xmlns:local="clr-namespace:Widget;assembly=Widget"
Title="Widget" Height="366" Width="588" WindowStyle="SingleBorderWindow">
<Window.Resources>
<local:EnumBooleanConverter x:Key="enumBooleanConverter" />
</Window.Resources>
...
非常感谢任何帮助。
答案 0 :(得分:6)
经过多次搔痒(并在屏幕上大量喊叫)后,我发现了问题。
事实证明,识别命名空间不应该有程序集。
我是这样定义的
xmlns:local="clr-namespace:Widget;assembly=Widget"
......但它应该就像这样
xmlns:local="clr-namespace:Widget"
答案 1 :(得分:0)
确保EnumBooleanConverter可公开访问,并且它具有公共空构造函数。