2011-01-17 36 views
6

Estoy usando la cuadrícula de datos WPF toolkit. Lo tengo configurado en SelectionUnit = "Celda" y SelectionMode = "Extendido".WPF Datagrid: evento SelectionChanged no se produce cuando SelectionUnit = "Celda"

¡El evento SelectionChanged nunca se plantea!

Funciona bien cuando SelectionUnit se establece en FullRow.

¿Falta algo?

Por cierto, lo necesito porque intento crear una Propiedad adjunta para ayudarme a vincular SelectedCells a mi ViewModel.

Respuesta

7

Haz uso de DataGrid.SelectedCellsChanged que debe provide you con lo que necesites.

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(); 

    } 
} 
+0

Aaron's right. SelectionChanged sí funciona y proporciona la información necesaria. – GuYsH

Cuestiones relacionadas