无法使用Dispatcher从DatePicker读取DateTime.调用C#
本文关键字:读取 DateTime 调用 DatePicker Dispatcher | 更新日期: 2023-09-27 18:25:31
我有一些Windows Framework Presentation应用程序。
由后台工作人员完成的所有操作。我正在尝试获取选定的日期。
DateTime StartDate = DateTime.MinValue;
StartOfferDatePicker.Dispatcher.Invoke(
new Action(delegate()
{
StartDate = StartOfferDatePicker.GetValue(DatePicker.SelectedDateProperty);
}
));
我得到错误Can not imlicitly convert an 'object' to System.DateTime
。
不…GetValue
的声明返回类型只是object
。如果值实际上是DateTime
,那么您应该能够投射:
StartDate = (DateTime) StartOfferDatePicker.GetValue(DatePicker.SelectedDateProperty);
请注意,这与Dispatcher.Invoke
无关。如果在事件处理程序中有相同的代码,您会看到完全相同的问题。
然而,只使用SelectedDate
属性可能更简单:
StartDate = StartOfferDatePicker.SelectedDate.Value;
.Value
部分是因为SelectedDate
属于Nullable<DateTime>
类型。当然,如果没有选择日期,这会很成功——你应该考虑一下你想如何处理。(也许您的StartDate
变量也应该是Nullable<DateTime>
。)
您可以使用StartDate = StartOfferDatePicker.SelectedDate.Value.Date;