C# 日期时间格式区域性转换器
我尝试将DateTimeFormatCultureConverter实现到C# 日期时间格式区域性转换器,c#,.net,silverlight,xaml,C#,.net,Silverlight,Xaml,我尝试将DateTimeFormatCultureConverter实现到DataGridTextColumn 它可以工作,我可以调试它,但它根本不会更改日期时间格式。因此我看不到任何可见的更改 (我总是可以使用返回格式化;//DateTime.Parse(格式化); 但在这种情况下,按ASC/DESC对字段进行排序不起作用。) 有什么线索吗 谢谢大家! 代码 public class DateTimeFormatCultureConverter: IValueConverter { publ
DataGridTextColumn
它可以工作,我可以调试它,但它根本不会更改日期时间格式。因此我看不到任何可见的更改
(我总是可以使用返回格式化;//DateTime.Parse(格式化);
但在这种情况下,按ASC/DESC对字段进行排序不起作用。)
有什么线索吗
谢谢大家!
代码
public class DateTimeFormatCultureConverter: IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
DateTime originalValue = (DateTime)value;
CultureInfo currentUICulture = Thread.CurrentThread.CurrentUICulture;
if (currentUICulture.EnglishName.Contains("Spanish") || currentUICulture.EnglishName.Contains("Portuguese"))
{
string formated = string.Format("{0}/{1}/{2}", originalValue.Day, originalValue.Month, originalValue.Year);
return DateTime.Parse(formated);
}
else
{
string formated = string.Format("{0}/{1}/{2}", originalValue.Month, originalValue.Day, originalValue.Year);
return DateTime.Parse(formated);
}
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
数据网格
<sdk:DataGridTextColumn x:Name="txcInstalled"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto"
Binding="{Binding Installed, Converter={StaticResource DateTimeFormatCultureConverter}}"
IsReadOnly="True" />
您返回的是一个
DateTime
变量,而不是格式化字符串。删除returndatetime.Parse(格式化)
,而不是返回格式化代码>。这应该对你有好处
编辑不使用值转换器,您可以使用StringFormat
绑定属性。看
以下内容应该为您提供一个特定于区域性的字符串,我认为这正是您要查找的内容:
<sdk:DataGridTextColumn x:Name="txcInstalled"
CanUserReorder="True"
CanUserResize="True"
CanUserSort="True"
Width="Auto"
Binding="{Binding Installed, StringFormat={}{0:d}}"
IsReadOnly="True" />
正确。我始终可以使用返回格式;//DateTime.Parse(格式化);但在这种情况下,按ASC/DESC对字段进行排序不起作用。在你的问题中漏掉了这个。。我尝试了Binding=“{Binding Installed,StringFormat=”{}{0:d}',但它不起作用。错误是什么?我认为不需要有单引号。嗯……如果没有单引号,则会出现语法错误。因此它无法生成应用程序。