转换器无法在 windows phone 8.1 Datepicker 中将类型“system.datetime”的值转换为类型“datetime”

Posted

技术标签:

【中文标题】转换器无法在 windows phone 8.1 Datepicker 中将类型“system.datetime”的值转换为类型“datetime”【英文标题】:Converter failed to convert value of type 'system.datetime' to type 'datetime' in windows phone 8.1 Datepicker 【发布时间】:2015-04-10 21:21:00 【问题描述】:

我正在使用 MVVM 模式创建一个 windows phone 8.1 应用程序。我使用了 datepicker,我想在 viewModel 中获取 datepicker 的值(日期),所以我将它与 viewModel 中的属性绑定。运行此应用程序后,我在 Visual Studio 的输出窗口中收到错误。

错误:转换器无法将类型“System.DateTime,mscorlib,Version=4.0.0.0,Culture=neutral,PublicKeyToken=7cec85d7bea7798e”的值转换为类型“DateTime”; BindingExpression: Path='Date' DataItem='App1.ViewModel.MainViewModel';目标元素是'Windows.UI.Xaml.Controls.DatePicker'(名称='null');目标属性是“日期”(输入“日期时间”)。

这是我的, Xaml 视图:

<DatePicker Grid.Row="1" Grid.Column="1"
                VerticalContentAlignment="Center"
                HorizontalContentAlignment="Center"
                HorizontalAlignment="Left"
                VerticalAlignment="Center" Margin="26,-0.333,0,0.5"
                Date="Binding Date"
                />

ViewModel 属性:

 private DateTime _date;
    public DateTime Date
    
        get  return _date; 
        set
        
            _date = value; 
            RaisePropertyChanged();
        
    

谁能帮我解决这个错误。

【问题讨论】:

【参考方案1】:

DatePickerDate 属性是 DateTimeOffset (MSDN)

这意味着您不能直接将其绑定到DateTime 对象,因为不存在转换。但是,DateTimeOffset 有一个方便的属性,DateTime (MSDN) DateTime

所以只需将您的绑定更改为:

Date="Binding Date.DateTime"

或绑定DateTimeOffset 属性并稍后自行转换。

【讨论】:

感谢@BradleyDotNet!我已将属性更改为 DateTimeOffset 并且错误现在已经消失。但是我现在得到的财产的价值是 1/1/0001 12:00:00 AM +00:00。你能告诉我如何获取当前日期吗? @UtsavDawn 表示未设置的值。用户还没有选择日期吗? 我刚刚检查了一下,发现用户从日期选择器中选择了一个值,但我仍然得到相同的值。 @UtsavDawn 您是否将模式设置为TwoWay? IIRC WP 中的默认绑定模式是“OneWay” 感谢TwoWay成功!另一件事是日期选择器上的默认日期显示 1/1/1915。您能告诉我如何将其设置为当前日期吗?

以上是关于转换器无法在 windows phone 8.1 Datepicker 中将类型“system.datetime”的值转换为类型“datetime”的主要内容,如果未能解决你的问题,请参考以下文章

Windows Phone 8.1 无法识别导航到的页面

Windows Phone 8.1 后台任务 - 无法调试且不会触发

我无法将套接字 io 与 windows phone 8.1 C# 连接

Windows Phone 8.1中的ContentDialog无法正常关闭,即使它已隐藏

Windows Phone 8.1 HTML 公司应用程序 - 无法安装公司应用程序

在 windows phone 8.1 中将 Base64String 图像显示为 MapIcon 图像