バージョン

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

Override の設定

並べ替えやフィルタリング設定などの xamGrid の設定は、コントロールの様々なレベルでカスタマイズできます。たとえば、コントロール全体で並べ替えを有効にできますが、特定の列で並べ替えを選択的に無効にできます。現在のレイアウト レベルまたは列レベルの設定を使用することによって、xamGrid の設定をオーバーライドできます。

すべての ColumnLayout オブジェクトは、コントロール レベルで設定をオーバーライドするプロパティを公開します。たとえば、ColumnLayout オブジェクトには、xamGrid レベルで EditingSettings オブジェクトに設定されたオプションをオーバーライドする EditingSettingOverride タイプの EditingSettings プロパティが含まれます。

各列には、xamGrid または ColumnLayout 設定をオーバーライドするためのプロパティが含まれます。プロパティを以下に列挙します。

以下のコードは、子行のみの編集を許可する方法、そして子データの固有の列で編集を制限する方法を示します。

XAML の場合:

<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>

Visual Basic の場合:

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

C# の場合:

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;