У меня есть текстовое поле с датой, и я хочу преобразовать его в средство выбора даты для двусторонней привязки. Но, к сожалению, средство выбора даты не показывает дату.
<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}" />
Я не вижу, что я делаю неправильно, это кажется очень простым.
Я могу просто ввести дату в средстве выбора даты, и это работает... очень странно... буду рад любым идеям...
РЕДАКТИРОВАТЬ:
Подошел на шаг ближе, используя snoop и просмотрев привязку к средству выбора даты, и, похоже, произошла ошибка, у меня, кажется, другой ожидаемый тип:
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:
Вот и все, в коде datetime был NullableDateTime. Спасибо всем, кто предлагает идеи, особенно Вив. Голосуйте за всех, у кого есть достойное предложение :-)
BirthDate
? - person Anatoliy Nikolaev   schedule 24.03.2014DatePicker.DataContext
прав и действительно может найти собственность? Вы можете проверить это с помощью Snoop во время выполнения, чтобы убедиться, что DataContext правильный иSelectedDate
Binding действителен наDatePicker
. - person Viv   schedule 24.03.2014