В Dates находится DateTime[], EndDate имеет тип DateTime, DateFromDateTimeConverter конвертер делает следующее:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTime)
return ((DateTime)value).ToString("MM/dd/yyyy", culture);
else
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is string)
{
DateTime result;
if (DateTime.TryParseExact(value.ToString(), "MM/dd/yyyy", culture, DateTimeStyles.None, out result))
return result;
}
return DependencyProperty.UnsetValue;
}
Даты в списке комбика выглядят как: 12/20/2011 — ничего для этого не было сделанно в коде явно, т.е. комбик как-то сам так их форматирует . Что устраивает. Однако после выбора любой даты из комбика она попадает в Text проперти как 12/20/2011 00:00:00 и дёргается ConvertBack() который естественно ставит флаг ошибки. StringFormat игнорируется при наличии Converter .
Вопрос: как заставить комбик форматировать DateTime как "d" при выборе элемента из списка?
Re: [WPF] ComboBox with DateTime, Binding, Converter + Forma
просто поправьте конвертер, зачем вам TryParseExact, сделайте просто TryParse. Если у вас комбобокс редактируемый, то TryParse почти любой ввод поймет, даже если юзер с точками дату введет, как ему у себя в системе привычней.
Re[2]: [WPF] ComboBox with DateTime, Binding, Converter + Fo
Здравствуйте, notacat, Вы писали:
N>просто поправьте конвертер, зачем вам TryParseExact, сделайте просто TryParse. Если у вас комбобокс редактируемый, то TryParse почти любой ввод поймет, даже если юзер с точками дату введет, как ему у себя в системе привычней.
По спекам там должно быть MM/dd/yyyy, всё остальное ошибочный ввод. Если разрешать ввод MM/dd/yyyy HH:mm:ss то этот ввод останется в Text комбика.
Re[2]: [WPF] ComboBox with DateTime, Binding, Converter + Fo
Здравствуйте, notacat, Вы писали:
N>просто поправьте конвертер, зачем вам TryParseExact, сделайте просто TryParse. Если у вас комбобокс редактируемый, то TryParse почти любой ввод поймет, даже если юзер с точками дату введет, как ему у себя в системе привычней.
В доплнение, проблеммы с юзером как раз таки нет. Проблемма с комбиком, который в случае присутствия Converter заполняет Text как DateTime.ToString().
Re[3]: [WPF] ComboBox with DateTime, Binding, Converter + Fo