Я связывающую стандартный DatePicker к свойству в моем коде следующим образом:WPF DatePicker выбирает неправильную дату
XAML:
<DatePicker Text="{Binding Start, Mode=TwoWay}" Width="150" BorderBrush="LightGray" VerticalAlignment="Center" Margin="3"/>
Код:
public DateTime Start
{
get { return _start; }
set
{
_start = value;
RaisePropertyChangedEvent("Start");
}
}
В конструктор I инициализируйте значение DateTime.Now, которое сегодня 8 января. 2014 (что должно быть однозначным на разных языках). Однако я на датской машине, поэтому форматированное значение строки будет 8/1/2014 в отличие от стиля США 1/8/2014.
Первая проблема заключается в том, что сборщик даты показывает значение, отформатированное как американский стиль, и когда я открываю раскрывающийся список, это также говорит 1 августа.
Вторая проблема хуже, хотя. Когда я выбираю, например. 1 декабря из выпадающего, текст говорит 12/1/2014, что является правильным в стиле США, но фактическое время и время, выбранное (на имущество), 12 января, которое соответствует датскому стилю ...
Я предполагаю, что это из-за некоторой проблемы при преобразовании в/из локализованных строковых представлений DateTime, но почему выбор даты игнорирует локализацию? И как я могу это исправить?