private static void SubscribeSelectionChanges(DataGrid dataGrid) { dataGrid.UpdateHandler(DataGridCell.SelectedEvent, SelectedCellsChangedHandler, true); dataGrid.UpdateHandler(DataGridCell.UnselectedEvent, SelectedCellsChangedHandler, true); dataGrid.SetCurrentValue(IsSubscribingChangesProperty, BooleanBoxes.True); }
private static void UpdateSelectedCellItemFromView(DataGrid dataGrid) { var index = dataGrid.GetIndex(); if (index == null || index.Value.Column < 0 || index.Value.Column >= dataGrid.Columns.Count) { dataGrid.SetCurrentValue(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.SetCurrentValue(CellItemProperty, cellItem); }
private static void ListenToColumnAutoGeneration(DataGrid dataGrid) { if (dataGrid.GetValue(ListenerProperty) == null) { dataGrid.SetCurrentValue(ListenerProperty, new AutogenerateColumnListener(dataGrid)); } }