private void Control_PreviewKeyDown(object sender, System.Windows.Input.KeyEventArgs e) { if (e.Key == System.Windows.Input.Key.Return) { DataGridOwner.CommitEdit(); } }
/// <summary> /// Generate element /// </summary> /// <param name="cell"></param> /// <param name="dataItem"></param> /// <returns></returns> protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem) { // Note: We do not set the DataContext as it is provided by the DataGridRow that is a parent var contentControl = new ContentControl(); contentControl.SetBinding(ContentControl.ContentProperty, Binding); contentControl.ContentTemplate = DataGridOwner.TryFindResource(Template) as DataTemplate; return(contentControl); }
public CustomBoundColumn(IColumnDescriptionVm columnDescription) { _columnDescription = columnDescription; _columnDescription .WhenAnyValue(x => x.IsVisible) .ObserveOnDispatcher() .Subscribe(isVisible => Visibility = isVisible ? Visibility.Visible : Visibility.Collapsed); _columnDescription .WhenAnyValue(x => x.Template) .ObserveOnDispatcher() .Subscribe(t => { if (DataGridOwner == null) { return; } var cellTemplate = DataGridOwner.FindResource(new DataTemplateKey(t.GetType())) as DataTemplate; CellTemplate = cellTemplate; }); _columnDescription .WhenAnyValue(x => x.HasOverlook) .ObserveOnDispatcher() .Subscribe(val => { if (DataGridOwner == null) { return; } if (val) { CellStyle = DataGridOwner.FindResource("OverlookCellStyle") as Style; } else { CellStyle = DataGridOwner.FindResource("LogDataGridCellStyle") as Style; } }); }
private void OnKeyDown(object sender, KeyEventArgs e) { DataGridOwner.BeginEdit(); }