xamGrid コントロールの代わりに xamDataGrid コントロールを使用してください。xamGrid は数年以内に廃止する予定のため、新しい機能の追加はありません。xamGrid のサポートおよび重要なバグ修正は廃止時まで提供されます。コードベースの xamDataGrid への移動に関する質問は、サポートまでお問い合わせください。
タイプ ComboBoxColumn の列によって、事前設定された項目のドロップダウン リストから値を選択して、xamGrid コントロールのセル値を編集できます。
以下は ComboBoxColumn がある xamGrid の図です。
図 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 を示しています。
図 2: データ テンプレートのインスタンスに設定された ComboBoxColumn*