日付を含むテキストボックスがあり、双方向バインディング用の日付ピッカーに変換したいと考えています。残念ながら、日付ピッカーには日付が表示されません。
<TextBox Grid.Row="1"
Grid.Column="4"
IsReadOnly="False"
Text="{Binding Path=BirthDate,
Mode=OneWay,
StringFormat='dd/MM/yyyy'}" />
次のコードは機能しません。選択された日付は空を示しています...(値が含まれている間)
<DatePicker Grid.Row="1"
Grid.Column="4" FirstDayOfWeek="Monday" SelectedDate="{Binding BirthDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" ></DatePicker>
アプリケーションの別の場所には、動作する日付ピッカーもあります。
<DatePicker x:Name="DatePicker"
Grid.Row="3"
Grid.Column="1"
FirstDayOfWeek="Monday"
SelectedDate="{Binding Parameter.PAR_Date,
Mode=TwoWay}" />
何が間違っているのかわかりません。非常に単純なようです。
日付ピッカーに日付を入力するだけで機能します...とても奇妙です...どんなアイデアでも大歓迎です...
編集:
スヌープを使用して日付ピッカーのバインディングを調べることで一歩近づきましたが、エラーがあるようです。予想されるタイプが異なるようです:
System.Windows.Data Error: 1 : Cannot create default converter to perform 'two-way' conversions between types 'EVD.Framework.NullableDateTime' and 'System.Nullable`1[System.DateTime]'. Consider using Converter property of Binding. BindingExpression:Path=Birthdate; DataItem='SomeModel' (HashCode=31671132); target element is 'DatePicker' (Name=''); target property is 'SelectedDate' (type 'Nullable`1')
System.Windows.Data Error: 5 : Value produced by BindingExpression is not valid for target property.; Value='04/10/1929' BindingExpression:Path=Birthdate; DataItem='SomeModel' (HashCode=31671132); target element is 'DatePicker' (Name=''); target property is 'SelectedDate' (type 'Nullable`1')
編集2:
それだけです。コードでは、日時は NullableDateTime でした。アイデアを提案してくれた皆さん、特に Viv に感謝します。まともな提案で全員に投票します:-)