當使用ValueConverter作爲綁定的一部分時,Convert
函數的參數之一是System.Globalization.CultureInfo
對象。IValueConverter實現中的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;
}
基本上,特定格式可被指定爲轉換器參數,但如果不是,則使用培養對象的短日期模式。
感謝喬希,問題已解決,請參閱我的帖子上的編輯。服務器不應該對文化產生任何影響,因此我的困惑(我今天早上更新了錯誤的服務器)。我已經標記你的答案,因爲根據問題,它在技術上更加正確:) – slugster 2010-03-18 22:21:29