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