0

Windows Framework プレゼンテーション アプリケーションがあります。

バックグラウンド ワーカーによって実行されるすべてのアクション。選択した日付を取得しようとしています。

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

エラーが発生しますCan not imlicitly convert an 'object' to System.DateTime

4

2 に答える 2

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>。)

于 2013-07-30T07:46:27.720 に答える