a に対して次の定義がありますDatePicker
。
<sdk:DatePicker x:Name="dtpStartDate"
Grid.Row="4"
Grid.Column="1"
SelectedDateFormat="Short"
SelectedDate="{Binding MyObject.StartDate, Mode=TwoWay, NotifyOnValidationError=True}"/>
MyObject
StartDate
nullable として定義されているを含むクラスですDateTime
。
class MyObjectClass
{
....
public DateTime? StartDate { get; set; }
....
}
私は(Prism経由で)MVVMを使用しており、MyObject
正しくバインドされています。
このビューを初めて表示すると、(予想どおり) 日付が空白になり、ピッカーをクリックすると、今日の日付が強調表示されたカレンダーが表示されます。
日付 (今日以外) を選択するか、日付が入力されたレコードを表示すると、フォームを空白にして新しいオブジェクトを作成すると、次のようになります。
this.MyObject = new MyObjectClass();
ピッカーをクリックしたときに強調表示される日付は、以前に選択した日付です。
したがって、レコードが「2009 年 5 月 1 日」を示している場合、それがピッカーで強調表示されます。StartDate
正しく表示されるように設定できDateTime.Today
ますが、日付が望ましくない形式で表示されることを意味します。
では、日付を null に設定しても、ピッカーで選択した日付が今日にリセットされないのはなぜでしょうか?