Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用WPF的日期转换器_C#_Wpf_Wpf Controls_Wpfdatagrid - Fatal编程技术网

C# 使用WPF的日期转换器

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

我制作这个转换器是为了在从DatePicker中选择日期后获取当前时间。在字符串Date中,我得到了从日期选择器中选择的值,但我似乎不能只得到日期。Value属性中的格式是9/24/2013 12:00:00,但我希望它是9/24/2013。我已经在上问了一个类似的问题,但所提供的答案都不起作用。我收到了相同的错误:指定的强制转换无效。

执行此操作不需要转换器。您可以在绑定本身中使用
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);