private static void UpdateSelectedCellItemFromView(DataGrid dataGrid) { var index = dataGrid.GetIndex(); if (index == null || index.Value.Column < 0 || index.Value.Column >= dataGrid.Columns.Count) { dataGrid.SetValue(CellItemProperty, null); return; } var column = dataGrid.Columns.ElementAtOrDefault<DataGridColumn>(index.Value.Column); var item = dataGrid.Items.ElementAtOrDefault(index.Value.Row); var cellItem = GetCellItem(column, item); dataGrid.SetValue(CellItemProperty, cellItem); }