C# 4.0 (WPF) アプリケーションに日付ピッカーがあり、テキスト ボックスに表示される日付の形式を yyyy/MM/dd に変更したいと考えています。これで、dd/MM/yyyy という形式が表示されます。
私のdatePickerのaxmlには、次のコードがあります。
<DatePicker Height="25" HorizontalAlignment="Left" Margin="5,36,0,0" Name="dtpStartDate"
SelectedDate="{Binding StartDateSelectedDate}" VerticalAlignment="Top" Width="115">
<DatePicker.Resources>
<Style TargetType="{x:Type DatePickerTextBox}">
<Setter Property="Control.Template">
<Setter.Value>
<ControlTemplate>
<TextBox x:Name="PART_TextBox"
Text="{Binding Path=SelectedDate, RelativeSource={RelativeSource AncestorType={x:Type DatePicker}}, StringFormat={}{0:yyyy/MM/dd}}" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</DatePicker.Resources>
</DatePicker>
これは初めてすべてが正常に機能するようで、希望する形式で日付を表示でき、手動またはカレンダーを使用して日付を変更できます。どちらの方法でも、viewModel に到着する日付は正しいです。
しかし、ビューモデルでこのケースを制御すると、日付が空の場合にそれを検出したいので、問題があります。しかし、日付ピッカーをクリアすると、ビューモデルで最後の正しい日付が到着するため、日付が空かどうかを確認できません。
では、日付ピッカーで日付の形式を変更し、日付が空/nullかどうかを制御するにはどうすればよいですか?
ありがとう。ダイムロック。