DatePicker in DataGrid does not update associated object

I have a DatePicker in a DataGrid:

<DataGridTemplateColumn Header="Next Date" Width="100" > <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <DatePicker SelectedDate="{Binding NextDate, Mode=TwoWay, Converter={StaticResource dateConverter}}" /> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <DatePicker Text="{Binding NextDate, Mode=TwoWay, Converter={StaticResource dateConverter}}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> 

It is attached to an object that defines the NextDate property (NextDate is long, I use the converter to go between long and DateTime):

 public long NextDate { get { return _nextDate; } set { if (_nextDate != value) { _nextDate = value; NotifyPropertyChanged("NextDate"); } } } 

The problem is that when I change the date in the grid, either by typing or by selecting from the drop-down calendar, the NextDate property does not change. Any ideas?

+4
source share
1 answer

Try setting UpdateSourceTrigger to Bindings. The following worked fine for me

  • PropertyChanged for SelectedDate
  • LostFocus for Text

Also, try setting a breakpoint in the converter in the debugger to make sure it hits

Xaml

 <DataGridTemplateColumn Header="Next Date" Width="100" > <DataGridTemplateColumn.CellEditingTemplate> <DataTemplate> <DatePicker SelectedDate="{Binding NextDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, Converter={StaticResource dateConverter}}" /> </DataTemplate> </DataGridTemplateColumn.CellEditingTemplate> <DataGridTemplateColumn.CellTemplate> <DataTemplate> <DatePicker Text="{Binding NextDate, Mode=TwoWay, UpdateSourceTrigger=LostFocus, Converter={StaticResource dateConverter}}" /> </DataTemplate> </DataGridTemplateColumn.CellTemplate> </DataGridTemplateColumn> 
+9
source

Source: https://habr.com/ru/post/1340696/


All Articles