1

日付を含むテキストボックスがあり、双方向バインディング用の日付ピッカーに変換したいと考えています。残念ながら、日付ピッカーには日付が表示されません。

                    <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 に感謝します。まともな提案で全員に投票します:-)

4

1 に答える 1

2

この記事では、StringFormat について説明しています

フォーマットするときは{0}を忘れずに使用する必要があります。

于 2014-03-25T00:35:22.023 に答える