WPF Datagrid: событие SelectionChanged не возникает, когда SelectionUnit = "Cell" - PullRequest
8 голосов
/ 17 января 2011

Я использую сетку данных инструментария WPF. У меня установлено SelectionUnit = "Cell" и SelectionMode = "Extended" .

Событие SelectionChanged никогда не вызывается!

Работает нормально, когда для SelectionUnit установлено значение FullRow.

Я что-то скучаю?

Кстати, причина в том, что мне это нужно, потому что я пытаюсь создать Присоединенное свойство, чтобы помочь мне привязать SelectedCells к моей ViewModel.

1 Ответ

9 голосов
/ 17 января 2011

Используйте DataGrid.SelectedCellsChanged, который должен предоставить вам то, что вам нужно.

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

    }
}
...