我有一个转换器,我从DataPicker中选择日期后获取当前时间。在字符串日期我得到从DatePicker中选择的值,但我似乎只能得到日期。进入Value属性的格式是9/24/2013 12:00:00我希望它是9/24/2013
我得到的错误是"错误122方法' ToString'需要1个参数"
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTime)
{
string date = value.ToString("d/M/yyyy");
return (date);
}
return string.Empty;
}
答案 0 :(得分:4)
您需要先将其强制转换为DateTime:
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (value is DateTime)
{
DateTime test = (DateTime) value;
string date = test.ToString("d/M/yyyy");
return date;
}
return string.Empty;
}
答案 1 :(得分:1)
您应该将值转换为DateTime
类型,因为ToString(String f)
类型没有Object
方法。
if (value is DateTime)
{
var dateTime = (DateTime)value;
return dateTime.ToString("dd/MM/yyyy");
}
return string.Empty;
答案 2 :(得分:0)
检查值类型后,需要将其转换为适当的类型,以便能够使用format参数执行“ToString”调用。尝试:
if (value is DateTime)
{
var dateValue = value as DateTime;
string date = dateValue.ToString("dd/MM/yyyy");
return date;
}
答案 3 :(得分:0)
如果您在WPF DatePicker控件上使用Converter,您应该注意WPF DatePicker本身会重新格式化日期,尽管您使用的转换器。你必须style the Datepicker to include a StringFormat。
这里有一个相关的问题:如何show just Month Year string format in a DatePicker显示附加属性以修改DatePicker的行为以显示自定义格式。这是必需的,因为WPF Datepicker控件本身存在缺陷。
另请注意,有一些警告,特别是DatePicker会在其默认字符串格式和您应用的字符串格式之间闪烁!我在没有闪烁的情况下回答了上述问题a workaround for to apply a custom Format to WPF Datepicker。
希望您找到所需的解决方案。
答案 4 :(得分:-2)
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value is DateTime)
{
string date=value.Date.ToShortDateString();
return (date);
}
return string.Empty;
}