Когда ValueConverter используется как часть привязки, один из параметров функции Convert
является объектом System.Globalization.CultureInfo
.
Может кто-нибудь сказать мне, откуда этот культурный объект получает информацию?
У меня есть код, который форматирует дату на основе этой культуры. Когда я получаю доступ к своему элементу управления Silverlight, который размещен на моем компьютере, он корректно форматирует дату (используя формат d / MM / гггг , который установлен на моем компьютере как формат краткой даты). Когда я получаю доступ к тому же элементу управления, размещенному на другом сервере (с моего клиентского компьютера), дата форматируется как ММ / дд / гггг чч: мм: сс - что совершенно неверно. По случайному совпадению региональные настройки на сервере совпадают с настройками моего клиентского компьютера.
Это код моего конвертера значений:
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTime)
{
if (parameter != null && !string.IsNullOrEmpty(parameter.ToString()))
return ((DateTime)value).ToString(parameter.ToString());
else
return ((DateTime)value).ToString(culture.DateTimeFormat.ShortDatePattern);
}
return value;
}
в основном, в качестве параметра конвертера может быть указан определенный формат, но если это не так, то используется шаблон короткой даты объекта культуры.