【VB.NET】【WPF】DatePicker:DisplayDate プロパティと SelectedDate プロパティの違い

DatePicker コントロールの SelectedDate プロパティ と DisplayDate プロパティの違いが分かりにくかったのでメモ。

SelectedDate プロパティ

SelectedDate プロパティは現在選択されている日付を取得または設定する。

たとえば、Me.oDatePicker.SelectedDate = Now というコードを書いて実行すると、下図のようになる。(実行したのが2019年1月10日の場合)

DisplayDate プロパティ

DisplayDate プロパティは表示する日付を取得または設定する。

たとえば、Me.oDatePicker.DisplayDate = Now.AddMonths(1) というコード(翌月の日付を設定)を実行しても、下図のように何も設定されてないように見えるが、これは「現在選択されている日付(SelectedDate プロパティ)」が未設定の状態ということ。

上図の右端にあるカレンダーのアイコンをクリックすると、下図のように、(コードを実行したのが2019年1月10日なので)翌月の日付が設定されていることが分かる。

つまり、DisplayDate プロパティは、ユーザーが日付を選択するためのカレンダーのページの位置を取得または設定するということ。

SelectedDate プロパティと DisplayDate プロパティの関係

SelectedDate プロパティの値と DisplayDate プロパティの値の設定順によっては、それぞれの値が同じになったり違うものになったりする。

たとえば、先に SelectedDate プロパティを設定してから DisplayDate プロパティを設定すると(それぞれの値はわざと変えてみた)・・・

Me.oDatePicker.SelectedDate = Now

Me.oDatePicker.DisplayDate = Now.AddMonths(1)

下図のように、現在選択されている日付(SelectedDate)と表示されている日付(DisplayDate)の値は違ったものになる。

逆に、DisplayDate プロパティを設定してから SelectedDate プロパティを設定すると(それぞれの値はわざと変えてみた)・・・

Me.oDatePicker.DisplayDate = Now.AddMonths(1)

Me.oDatePicker.SelectedDate = Now

下図のように、現在選択されている日付(SelectedDate)と表示されている日付(DisplayDate)は同じ値になる。

 

SelectedDate プロパティを設定すると、同じ値が DisplayDate プロパティにも自動的に設定されるようですね。

購読する
通知を受け取る対象
guest
0 Comments
Inline Feedbacks
View all comments