1

我正在尝试对 WPF 上的枚举进行一些数据绑定,但出现异常。

  1. 首先我有我的 NS 声明,指向我添加到项目中的引用:

    xmlns:defs="clr-namespace:API.Definitions;assembly=API"

    并且:

    xmlns:sys="clr-namespace:System;assembly=mscorlib"

  2. 然后我在窗口资源中添加一个枚举:

    <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>
    
  3. 我正在尝试在组合框上使用它:

    ComboBox ItemsSource="{Binding Source={StaticResource someEnum}}"

  4. 运行它并获得 XamlParseException:

Type reference cannot find type named '{clr namespace:API.Definitions;assembly=API}someEnum'.

我浏览了这个 API 参考,如果我愿意,我可以清楚地看到那个枚举并在代码上使用它。我还测试了与本地枚举(未引用)的绑定,这非常有效。

一些答案暗示从 xmlns:defs="clr-namespace:API.Definitions;assembly=API" 中删除 assembly=API 应该可以解决这个问题,但事实并非如此。

谢谢你的帮助。

4

1 回答 1

0

好的,我找到了导致它的原因——引用的 API 是为 x86 而不是“任何 CPU”构建的。对此有何解释?

于 2013-01-07T16:06:08.830 回答