Quantcast
Viewing latest article 1
Browse Latest Browse All 3

Answer by kostjaigin for Custom DataGrid column with a CellTemplate and binding

The question is pretty old, but i recently faced this issue myself. An Alternative to @Gregfr answer above is to write your custom DataGridColumn class. The following is what i have done for DatePicker Column:

 public class DataGridDatePickerColumn : DataGridBoundColumn  {    protected override FrameworkElement GenerateEditingElement(DataGridCell cell, object dataItem)    {      var datePicker = new DatePicker();      datePicker.SetBinding(DatePicker.TextProperty, this.Binding);      datePicker.SetBinding(DatePicker.SelectedDateProperty, this.Binding);      return datePicker;    }    protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)    {      var textBlock = new TextBlock();      textBlock.SetBinding(TextBlock.TextProperty, this.Binding);      return textBlock;    }  }

Then i use it in one-line call in my xaml-pages like this:

<h:DataGridDatePickerColumn IsReadOnly="False" Header="Some Date" Binding="{Binding SomeDate, StringFormat='dd.MM.yyyy'}" />

In your case you could extend this C# Class by writing supporting functions that work with PreviewTextInput property and use regex expressions like [0-9]+ to control editing.


Viewing latest article 1
Browse Latest Browse All 3

Trending Articles