We recommend that you use the xamDataGrid control instead of the xamGrid control. The xamGrid is being planned for retirement over the next few years and will not receive any new features. We will continue to provide support and critical bug fixes for the xamGrid during this time. For help or questions on migrating your codebase to the xamDataGrid, please contact support.
Override Settings
Settings on xamGrid, such as sorting and filtering settings, are customizable on different levels of the control. For example, you can enable sorting on the entire control, but selectively disable sorting on specific columns. You can override settings of xamGrid™ by using settings on the column layout level or column level.
Every ColumnLayout object exposes properties that will override settings on the control level. For example, the ColumnLayout object contains an EditingSettings property of type EditingSettingOverride which overrides options set on the EditingSettings object on the xamGrid level.
Each column contains properties to override xamGrid or ColumnLayout settings. The properties are listed below:
The following code shows you how to allow editing only on child rows, and further restrict editing on a specific column in the child data.
<ig:XamGrid x:Name="xamGrid1" AutoGenerateColumns="False">
<!-- Columns are ReadOnly by default -->
<ig:XamGrid.Columns>
<ig:TextColumn Key="CategoryName" />
<ig:TextColumn Key="Description" />
</ig:XamGrid.Columns>
<ig:XamGrid.ColumnLayouts>
<!-- Child Columns -->
<ig:ColumnLayout Key="Products">
<!-- Allow editing on child columns -->
<ig:ColumnLayout.EditingSettings>
<ig:EditingSettingsOverride AllowEditing="Row" />
</ig:ColumnLayout.EditingSettings>
<ig:ColumnLayout.Columns>
<!-- Restrict editing on one of the 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;