バージョン

xamComboEditor を XmlDataProvider にバインド

XML ファイルを含め、様々な種類のデータ ソースに xamComboEditor™ を バインドできます。XmlDataProvider を使用して、アプリケーションのプレゼンテーション層に XML を公開できます。XmlDataProvider をまだ作成していない場合、このトピックの先に進む前に XmlDataProvider の作成の手順を読み、それに従ってください。

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

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

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

XAML の場合:

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