Articles in this section
Category / Section

How to change the same values in all records when the ComboBox column value is changed in WinRT DataGrid?

3 mins read

In the SfDataGrid, when a column has same value in more than one row, you can update all those values in the column at once to a newly changed cell value by handling the CurrentCellValidated event. This event has two arguments, sender and CurrentCellValidatedEventArgs.

The CurrentCellValidatedEventArgs has the following properties,

  • NewValue: Gets new value from the edited cell in the DataGrid.
  • OldValue: Gets old value from the edited cell in the DataGrid.
  • Column: Gets the Grid Column of the DataGrid.
  • ErrorMessage: Gets error message to notify the error.
  • RowData: Gets the edited row data.

C#

this.grid.CurrentCellValidated += grid_CurrentCellValidated;
 
private void grid_CurrentCellValidated(object sender, CurrentCellValidatedEventArgs args)
{
    // Get the Column Index
    int columnIndex = this.grid.SelectionController.CurrentCellManager.CurrentRowColumnIndex.ColumnIndex;
    // Get the MappingName
    var mappingName = this.grid.Columns[columnIndex].MappingName;
    if (args.Column.MappingName ==  mappingName)
    {
        // Get the ItemSource of Grid
        var orderCollection = grid.ItemsSource as ObservableCollection<OrderInfo>;
        foreach (var record in orderCollection)
        {
            // Check the Combobox collection only
            if (record.CustomerName == args.OldValue.ToString())
                // New value updated in that collecion if the collection have OldValue
                record.CustomerName = args.NewValue.ToString();
        }
        this.grid.View.Refresh();
    }
}

Here, the CurrentCellValidated event is triggered when current cell moves to another cell. When the MappingName of the Current Cell’s Column is not equal to null and MappingName is CustomerName, then all the cell values that match the old values are changed to new values by using the NewValue and OldValue properties.

The following screenshot displays the updated ComboBox column values.

F:\KB\Images\NewCombo1.png

In the above screenshot, the old value Thomas Hardy is repeated in more than one cell. Thus, Thomas Hardy in the CustomerName column is replaced with the selected value Ana Trujillo. The following screenshot displays the changed value.

F:\KB\Images\UpdatedCombo1.png

Sample Links:

WPF

WRT

SilverLight

UWP

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