Когда ValueConverter используется как часть привязки, одним из параметров функции Convert
является объект System.Globalization.CultureInfo
.
Может ли кто-нибудь сказать мне, откуда этот объект культуры получает информацию?
У меня есть код, который форматирует дату на основе этой культуры. Когда я получаю доступ к моему элементу управления Silverlight, размещенному на моем компьютере, он правильно форматирует дату (используя формат d/MM/yyyy, который установлен как краткий формат даты на моем компьютере). Когда я получаю доступ к тому же элементу управления, размещенному на другом сервере (с моего клиентского компьютера), дата форматируется как MM/dd/yyyy hh:mm:ss, что совершенно неверно. По совпадению региональные настройки на сервере такие же, как и на моей клиентской машине.
Это код для моего преобразователя значений:
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;
}
в основном, конкретный формат может быть указан в качестве параметра преобразователя, но если это не так, то используется краткий шаблон даты объекта культуры.