我试图做一些数据绑定到WPF上的enum,但我得到一个异常。
-
首先我有我的NS声明,指向我添加到项目中的引用:
xmlns:defs="clr-namespace:API.Definitions;assembly=API"
也:
xmlns:sys="clr-namespace:System;assembly=mscorlib"
-
然后我添加一个枚举到窗口资源:
<Window.Resources <ResourceDictionary> <ObjectDataProvider x:Key="someEnum" MethodName="GetValues" ObjectType="{x:Type sys:Enum}"> <ObjectDataProvider.MethodParameters> <x:Type TypeName="defs:someEnum" /> </ObjectDataProvider.MethodParameters> </ObjectDataProvider> </ResourceDictionary> </Window.Resources>
-
我想在一个组合框上使用它:
ComboBox ItemsSource="{Binding Source={StaticResource someEnum}}"
-
运行它并得到一个XamlParseException:
Type reference cannot find type named '{clr namespace:API.Definitions;assembly=API}someEnum'.
我已经浏览了这个API引用,我可以清楚地看到枚举和使用如果我愿意,就用代码吧。我还测试了绑定到本地enum(未引用),这是完美的。
一些答案暗示从xmlns:defs="clr-namespace:API. definitions;assembly=API"中删除assembly=API应该可以解决这个问题,但是它没有。
谢谢你的帮助。
好的,我已经找到了导致它的原因-引用的API是为x86而不是"任何CPU"构建的。对此有什么解释吗?