无法使用Dispatcher从DatePicker读取DateTime。调用C#

无法使用Dispatcher从DatePicker读取DateTime。调用C#,c#,wpf,C#,Wpf,我有一些Windows框架演示应用程序 后台工作人员执行的所有操作。我正在尝试选择日期 DateTime StartDate = DateTime.MinValue; StartOfferDatePicker.Dispatcher.Invoke( new Action(delegate() { StartDate = StartOfferDatePicker.GetValue(DatePicker.SelectedDateProperty); } ));

我有一些Windows框架演示应用程序

后台工作人员执行的所有操作。我正在尝试选择日期

DateTime StartDate = DateTime.MinValue;
StartOfferDatePicker.Dispatcher.Invoke(
    new Action(delegate()
    {
        StartDate = StartOfferDatePicker.GetValue(DatePicker.SelectedDateProperty);
    }
));

我得到错误
无法正确地将“对象”转换为系统。DateTime

不。。。声明的返回类型只是
对象
。如果该值实际上是一个
DateTime
,您应该能够强制转换:

StartDate = (DateTime) StartOfferDatePicker.GetValue(DatePicker.SelectedDateProperty);
请注意,这与
调度程序.Invoke
无关。如果事件处理程序中有相同的代码,则会看到完全相同的问题

但是,仅使用属性可能更简单:

StartDate = StartOfferDatePicker.SelectedDate.Value;

.Value
部分是因为
SelectedDate
的类型为
null
。当然,如果没有选择日期,这会很糟糕——你应该考虑你想如何处理这个问题。(可能您的
StartDate
变量也应该是一个
null

您可以使用
StartDate=StartOfferDatePicker.SelectedDate.Value.Date