我有一些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
。
答案 0 :(得分:1)
没有...... GetValue
的声明返回类型只是object
。如果值实际 a DateTime
,您应该只能投射:
StartDate = (DateTime) StartOfferDatePicker.GetValue(DatePicker.SelectedDateProperty);
请注意,这与Dispatcher.Invoke
无关。如果在事件处理程序中使用相同的代码,则会看到完全相同的问题。
但是,使用SelectedDate
属性可能更简单:
StartDate = StartOfferDatePicker.SelectedDate.Value;
.Value
部分是因为SelectedDate
属于Nullable<DateTime>
类型。当然,如果没有选择日期,这将会爆炸 - 你应该考虑如何处理它。 (也许您的StartDate
变量 也应该是Nullable<DateTime>
。)
答案 1 :(得分:0)
您可以使用StartDate = StartOfferDatePicker.SelectedDate.Value.Date;