バージョン

xamComboEditor をコレクションにバインド

IEnumerable インターフェイスを実装するコレクションを含む複数の異なるデータ ソースに xamComboEditor をバインドできます。ObjectDataProvider を使用して、アプリケーションのプレゼンテーション層にコレクションを公開できます。ObjectDataProvider を未だ作成していない場合、このトピックの残りに進む前に ObjectDataProvider の作成の手順を読んで、それに従ってください。

xamComboEditor コントロールはデータ ソースに直接バインドしません。代わりに、データをバインドするために xamComboEditor は ComboBoxItemsProvider オブジェクトのインスタンスを使用します。Microsoft® Windows® Presentation Foundation ItemsControl のために使用する同じパターンを使用して、ComboBoxItemsProvider オブジェクトをデータバインドできます。ドロップダウンリストに移植するためにオブジェクトのコレクションを参照するバインディング式に ItemsSource プロパティを設定できます。

ItemsControl のデフォルトの動作は、基となるオブジェクトの ToString メソッドの結果を表示することです。各項目の視覚ツリーを決定する DataTemplate を作成する、または ComboBoxItemsProvider オブジェクトが便宜上提供する DisplayMemberPath プロパティと ValuePath プロパティを設定することによって、このデフォルトの動作をオーバーライドできます。エンド ユーザーに表示したいビジネス オブジェクトでプロパティの名前に DisplayMemberPath プロパティを設定できます。xamComboEditor の基となる値として保存したいビジネス オブジェクトでプロパティの名前に ValuePath プロパティを設定できます。xamComboEditor が編集しているデータ タイプは、xamComboEditor の ValueType プロパティとして指定するプロパティのデータタイプと一致しなければなりません。たとえば、ComboBoxItemsProvider オブジェクトの ValuePath プロパティを整数を返すプロパティに設定する場合、xamComboEditor の ValueType を整数データタイプに設定する必要もあります。

以下のコード例は、xamComboEditor を ObjectDataProvider にバインドする方法を示します。

XAML の場合:

...
<!--ValuePath プロパティに指定されたプロパティと同じデータ タイプに ValueType プロパティが設定されていることに注意してください。
この sys: プレフィックスは XML 名前空間 'clr-namespace:System;assembly=mscorlib' にマップされます。-->
<igEditors:XamComboEditor ValueType="{x:Type sys:Double}" VerticalAlignment="Top">
<igEditors:XamComboEditor.ItemsProvider>
                <igEditors:ComboBoxItemsProvider ItemsSource="{Binding Source={StaticResource CarData}}"
DisplayMemberPath="Make" ValuePath="BasePrice" />
        </igEditors:XamComboEditor.ItemsProvider>
</igEditors:XamComboEditor>
...