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 リファレンスを参照しましたが、その列挙型をはっきりと確認でき、必要に応じてコードで使用できます。ローカル列挙型 (参照されていない) へのバインドもテストしましたが、これは完全に機能します。

assembly=API を xmlns:defs="clr-namespace:API.Definitions;assembly=API" から削除することでこれを解決できるはずですが、そうではありません。

ご協力いただきありがとうございます。

4

1 に答える 1

0

わかりました、原因がわかりました。参照されている API は、「任意の CPU」ではなく x86 用に構築されています。これについての説明はありますか?

于 2013-01-07T16:06:08.830 に答える