バージョン

xamGrid コントロールの代わりに xamDataGrid コントロールを使用してください。xamGrid は数年以内に廃止する予定のため、新しい機能の追加はありません。xamGrid のサポートおよび重要なバグ修正は廃止時まで提供されます。コードベースの xamDataGrid への移動に関する質問は、サポートまでお問い合わせください。

ComboBoxColumn 列

タイプ ComboBoxColumn の列によって、事前設定された項目のドロップダウン リストから値を選択して、xamGrid コントロールのセル値を編集できます。

以下は ComboBoxColumn がある xamGrid の図です。

xamGrid ComboBoxColumn Column 01.png

図 1: ComboBoxColumn 列がある xamGrid

以下のリストは、ComboBoxColumn の主なプロパティを説明しています:

  • ItemsSource - ComboBoxColumn 列のデータ ソースを指定します

  • ItemTemplate - 使用されるデータ テンプレートを指定します。これによって列に項目が表示される方法をカスタマイズできます

  • DisplayMemberPath - ComboBoxColumn に表示される項目のソースのデータ プロパティを指定します

  • SelectedValuePath - ユーザーがドロップダウン リストから値を選択した時に返される値を指定します

以下のコードは、ComboBoxColumn 列を xamGrid コントロールに追加する方法を示します。

XAML の場合:

 <ig:ComboBoxColumn Key="Category" Width="120"
                    HorizontalContentAlignment="Stretch"
                    ItemsSource="{Binding Source={StaticResource optionsList}}"
                    SelectedValuePath="Name"
                    DisplayMemberPath="Name">

デフォルトでは、ComboBoxColumn 列はドロップダウン リストのセル値を表示します。ただし、テンプレートを使用することでこのデフォルトの表示を変更できます。

これを行うには、以下のコードで示すように、ComboBoxColumn 列の ItemTemplate プロパティをデータ テンプレートのインスタンスに設定します。

XAML の場合:

<ig:ComboBoxColumn Key="Category" Width="200" HorizontalContentAlignment="Stretch"
                   ItemsSource="{Binding Source={StaticResource optionsList}}"
                   SelectedValuePath="Name"
                   AllowEditingValidation=">
   <ig:ComboBoxColumn.ItemTemplate>
      <DataTemplate>
         <Grid>
            <Grid.ColumnDefinitions>
               <ColumnDefinition Width="20"></ColumnDefinition>
               <ColumnDefinition Width="20"></ColumnDefinition>
               <ColumnDefinition Width="160"></ColumnDefinition>
            </Grid.ColumnDefinitions>
            <TextBlock Text="{Binding ID}"  Grid.Column="0"></TextBlock>
            <TextBlock Text=" |"  Grid.Column="1"></TextBlock>
            <TextBlock Text="{Binding Name}"  Grid.Column="2"></TextBlock>
         </Grid>
      </DataTemplate>
   </ig:ComboBoxColumn.ItemTemplate>
</ig:ComboBoxColumn>

以下の図は、データ テンプレートのインスタンスに設定された ComboBoxColumn を示しています。

xamGrid ComboBoxColumn Column 02.png

図 2: データ テンプレートのインスタンスに設定された ComboBoxColumn*

関連トピック