xamGrid コントロールの代わりに xamDataGrid コントロールを使用してください。xamGrid は数年以内に廃止する予定のため、新しい機能の追加はありません。xamGrid のサポートおよび重要なバグ修正は廃止時まで提供されます。コードベースの xamDataGrid への移動に関する質問は、サポートまでお問い合わせください。
Override の設定
並べ替えやフィルタリング設定などの xamGrid の設定は、コントロールの様々なレベルでカスタマイズできます。たとえば、コントロール全体で並べ替えを有効にできますが、特定の列で並べ替えを選択的に無効にできます。現在のレイアウト レベルまたは列レベルの設定を使用することによって、xamGrid の設定をオーバーライドできます。
各列には、xamGrid または ColumnLayout 設定をオーバーライドするためのプロパティが含まれます。プロパティを以下に列挙します。
以下のコードは、子行のみの編集を許可する方法、そして子データの固有の列で編集を制限する方法を示します。
<ig:XamGrid x:Name="xamGrid1" AutoGenerateColumns="False">
<!-- 列はデフォルトでは ReadOnly です -->
<ig:XamGrid.Columns>
<ig:TextColumn Key="CategoryName" />
<ig:TextColumn Key="Description" />
</ig:XamGrid.Columns>
<ig:XamGrid.ColumnLayouts>
<!-- 子列 -->
<ig:ColumnLayout Key="Products">
<!-- 子列で編集を許可します -->
<ig:ColumnLayout.EditingSettings>
<ig:EditingSettingsOverride AllowEditing="Row" />
</ig:ColumnLayout.EditingSettings>
<ig:ColumnLayout.Columns>
<!-- 列のひとつで編集を制限します -->
<ig:TextColumn Key="ProductName" IsReadOnly="True"/>
<ig:TextColumn Key="QuantityPerUnit" />
<ig:TextColumn Key="UnitPrice" />
</ig:ColumnLayout.Columns>
</ig:ColumnLayout>
</ig:XamGrid.ColumnLayouts>
</ig:XamGrid>
Me.xamGrid1.ColumnLayouts(0).EditingSettings.AllowEditing = Infragistics.Controls.Grids.EditingType.Row
Dim productName As EditableColumn = TryCast(Me.xamGrid1.Columns.ColumnLayouts("Products").Columns("ProductName"), EditableColumn)
productName.IsReadOnly = True
this.xamGrid1.ColumnLayouts[0].EditingSettings.AllowEditing = Infragistics.Controls.Grids.EditingType.Row;
EditableColumn productName = this.xamGrid1.Columns.ColumnLayouts["Products"].Columns["ProductName"] as EditableColumn;
productName.IsReadOnly = true;