Articles in this section
Category / Section

How to avoid selecting a particular column in Silverlight GridDataControl?

1 min read

How to avoid selecting a particular column in GridDataControl?

GridDataControl allows you to select single or multiple records based on the value specified for the ListBoxSelectionMode property. By default GridDataControl does not avoids selecting any column, however you can achieve it in a different way. Using QueryCellInfo event you can able to get the index of the column(s) that you want to avoid selection. By setting the e.Style.Enable property as to false for that column(s), you can deactivate the cells belonging to that column from being current cell. Thus you cannot select or edit that column.

Following code snippet example demonstrates how to avoid selection of the column with mapping name EmpName.

C#

dataGrid.Model.QueryCellInfo += new GridQueryCellInfoEventHandler(OnQueryCellInfo);
 
void OnQueryCellInfo(object sender, GridQueryCellInfoEventArgs e)
{
    var index = this.dataGrid.VisibleColumns.IndexOf(this.dataGrid.VisibleColumns.FirstOrDefault(x => x.MappingName == "EmpName"));
    var resolvedIndex = this.dataGrid.Model.ResolveVisibleColumnIndexToPosition(index);
    if (e.Style.ColumnIndex == resolvedIndex)
    {
        e.Style.Enabled = false;
    }
}

 

Here the index of the column with MappingNameEmpName” in the DataGrid is obtained in the variable index. Using this index the current position of that column in the view is resolved using the method ResolveVisiblecolumnIndexToPosition. This allows you to locate that column in cases such as grouping and when row header is enabled. Thus you can disable the selection of that column using the obtained resolvedIndex.

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied