C# 使用WPF的日期转换器
我制作这个转换器是为了在从DatePicker中选择日期后获取当前时间。在字符串Date中,我得到了从日期选择器中选择的值,但我似乎不能只得到日期。Value属性中的格式是9/24/2013 12:00:00,但我希望它是9/24/2013。我已经在上问了一个类似的问题,但所提供的答案都不起作用。我收到了相同的错误:指定的强制转换无效。执行此操作不需要转换器。您可以在绑定本身中使用C# 使用WPF的日期转换器,c#,wpf,wpf-controls,wpfdatagrid,C#,Wpf,Wpf Controls,Wpfdatagrid,我制作这个转换器是为了在从DatePicker中选择日期后获取当前时间。在字符串Date中,我得到了从日期选择器中选择的值,但我似乎不能只得到日期。Value属性中的格式是9/24/2013 12:00:00,但我希望它是9/24/2013。我已经在上问了一个类似的问题,但所提供的答案都不起作用。我收到了相同的错误:指定的强制转换无效。执行此操作不需要转换器。您可以在绑定本身中使用StringFormat,对所选日期时间进行格式化,以便仅以mm/dd/yyyy格式显示日期 public clas
StringFormat
,对所选日期时间进行格式化,以便仅以mm/dd/yyyy格式显示日期
public class DateTimeConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (values != null)
{
DateTime test = (DateTime) value ;
string date = test.ToString("d/M/yyyy");
return (date);
}
return string.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}
ViewModel具有要绑定到DataGrid的TestData列表:
public class TestData
{
DateTime start;
public DateTime Start
{
get { return start; }
set { start = value; }
}
}
公共列表TestList{get;set;}
试试这个
public List<TestData> TestList { get; set; }
你为什么还要上这门课?DateTimes有大量内置的.ToString转换。如果这就是我要做的,那么没有必要这么做。我是从我的XAML调用它的,我想我需要从转换器中调用它。如果我不知道,你可以举个例子,我也想添加正确的时间,这是我一直在尝试的,但当文本块失去焦点时,它会返回到12:00:00 AM添加。我也在lost the focus中查看了一下,看看这是否有什么作用,但问题是,您能否共享您的xaml和vm代码?。。它应该可以工作。我需要检查你的代码来帮助你。这是我的xaml代码。请检查更新后的应答代码在你那里是否工作正常?当我将绑定名称从start更改为start1时,字符串格式工作正常。我认为这与从数据源绑定的数据有关
public class TestData
{
DateTime start;
public DateTime Start
{
get { return start; }
set { start = value; }
}
}
public List<TestData> TestList { get; set; }
DateTime test = (DateTime) value ;
string date = test.Date.ToString("d/M/yyyy");
//Use test.Date.tostring instad of test.tostring(...)
return (date);