我有一个绑定到DataGrid的项目集合.无法轻松访问集合本身,因此必须手动完成.
我在DataGrid上显示的成员之一是DateTime.虽然DateTime是UTC,但需要以用户的本地时间显示.
XAML中是否有一种结构,可以使绑定的DateTime对象从UTC转换为本地时间?
解决方法:
您将需要一个转换器来转换DateTime值.然后,字符串格式仍然照常可用:
class UtcToLocalDateTimeConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
if (value is DateTime)
return ((DateTime)value).ToLocalTime();
else
return DateTime.Parse(value?.ToString()).ToLocalTime();
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture) {
throw new NotImplementedException();
}
}
灵感来自/来自更新的答案this SO question,您将在其中找到用法的详细信息.