Интересно, можете ли вы мне помочь. У меня есть DataGrid, где пользователь будет добавлять новые строки из DataGrid. У меня есть DatePicker, связанный с коллекцией ObersableCollection в ViewModel.Новая строка в привязке DataGrid показывает DatePicker как 01/01/0001
Когда я создаю новую строку, дважды щелкнув последнюю строку, значение DatePicker по умолчанию - 01/01/0001.
Я попытался с помощью конвертера, как определено здесь:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DateTime dateValue = (DateTime)value;
return dateValue.ToShortDateString() == "01/01/0001" ? DateTime.Now : value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return value;
}
И я добавил этот конвертер для связывания. Это показывает UI как DateTime.Now, как и ожидалось, но когда он входит в ObservableCollection, значение DateTime все равно 01/01/0001. Поэтому, когда я сохраняю изменения в базе данных, я получаю сообщение об ошибке преобразования DateTime2 в DateTime.
Есть ли простой способ обойти это? У меня возникает соблазн не иметь встроенного добавления, если я не могу решить эту проблему, но я бы предпочел не идти по этому пути.
'когда он идет в ObservableCollection значение DateTime все равно 01/01/0001'. ну, как ожидается, метод «Конвертировать» изменяет значение, отображаемое в datagrid, не более того. перед тем, как сохранить изменения в проверке базы данных и сделать что-то с «01/01/0001» значениями – ASh
@ASh Convert, безусловно, бесполезен? Я хочу, чтобы значение в datagrid уменьшалось до ObersableCollection. Фактическая проблема заключается в том, что, когда пользователь переходит к выбору даты, он запускает DatePicker в 01/01/0001, поэтому он фактически бесполезен. Я пробовал установить «DisplayDateTime» на сегодняшнюю дату, но он все еще начинается с 01/01/0001 в календаре DatePicker, опять же, совершенно бесполезным? – Yokomoko
@Yolomoko, я полагаю, конвертер может работать, если вы введете 'CovertBack' тот же код, что и в' Convert' – ASh