DataGrid.SelectedCellsChanged Event
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Occurs when the SelectedCells collection changes.
public:
event System::Windows::Controls::SelectedCellsChangedEventHandler ^ SelectedCellsChanged;
public event System.Windows.Controls.SelectedCellsChangedEventHandler SelectedCellsChanged;
member this.SelectedCellsChanged : System.Windows.Controls.SelectedCellsChangedEventHandler
Public Custom Event SelectedCellsChanged As SelectedCellsChangedEventHandler
Public Event SelectedCellsChanged As SelectedCellsChangedEventHandler
Event Type
Examples
The following example shows how to handle the SelectedCellsChanged event and clear the values in the newly selected cells.
<Grid>
<DataGrid Name="DG1" ItemsSource="{Binding}" SelectionUnit="CellOrRowHeader" SelectionChanged="DG1_SelectionChanged" SelectedCellsChanged="DG1_SelectedCellsChanged" />
</Grid>
private void DG1_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
{
//Get the newly selected cells
IList<DataGridCellInfo> selectedcells = e.AddedCells;
//Get the value of each newly selected cell
foreach (DataGridCellInfo di in selectedcells)
{
//Cast the DataGridCellInfo.Item to the source object type
//In this case the ItemsSource is a DataTable and individual items are DataRows
DataRowView dvr = (DataRowView)di.Item;
//Clear values for all newly selected cells
AdventureWorksLT2008DataSet.CustomerRow cr = (AdventureWorksLT2008DataSet.CustomerRow)dvr.Row;
cr.BeginEdit();
cr.SetField(di.Column.DisplayIndex, "");
cr.EndEdit();
}
}
Private Sub DG1_SelectedCellsChanged(sender As Object, e As SelectedCellsChangedEventArgs)
'Get the newly selected cells
Dim selectedcells As IList(Of DataGridCellInfo) = e.AddedCells
'Get the value of each newly selected cell
For Each di As DataGridCellInfo In selectedcells
'Cast the DataGridCellInfo.Item to the source object type
'In this case the ItemsSource is a DataTable and individual items are DataRows
Dim dvr As DataRowView = DirectCast(di.Item, DataRowView)
'Clear values for all newly selected cells
Dim cr As AdventureWorksLT2008DataSet.CustomerRow = DirectCast(dvr.Row, AdventureWorksLT2008DataSet.CustomerRow)
cr.BeginEdit()
cr.SetField(di.Column.DisplayIndex, "")
cr.EndEdit()
Next
End Sub
Remarks
You can handle the SelectedCellsChanged event to be notified when the collection of selected cells is changed. If the selection includes full rows, the Selector.SelectionChanged event is also raised.
You can retrieve the AddedCells and RemovedCells from the SelectedCellsChangedEventArgs in the event handler.