XAML код: (! Статический экземпляр ViewModel - только для теста)WP8.1 DatePicker связывания - значение никогда не обновляется
<DatePicker Date="{Binding DateTimeOffsetTest}"></DatePicker>
DataContext устанавливается в App.ViewModel
ViewModel:
public class ViewModel : INotifyPropertyChanged
{
private DateTimeOffset _dateTimeOffsetTest = new DateTimeOffset(new DateTime(1980, 10, 10));
public DateTimeOffset DateTimeOffsetTest
{
get { return _dateTimeOffsetTest; }
set
{
_dateTimeOffsetTest = value;
//Was OnPropertyChanged(""); (Thanks to Will for fix)
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
var handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
}
Для теста я просто инициализировал ViewModel как статический экземпляр в приложении. Я добавил этот код в обработчик события Нажмите на кнопку в:
App.ViewModel.DateTimeOffsetTest = new DateTimeOffset(new DateTime(1988, 09, 11));;
Проблема заключается в том, что DatePicker ведет себя, как это связывание одноразовая. Если я обновляю свойство в ViewModel, DatePicker не будет обновляться. Я попытался установить режим OneWay и изменить UpdateSourceTrigger, но он не работает.
У кого-нибудь есть решение?
Если все правильно, оно должно работать. Все не так. Вам нужно добавить код для свойства и пример того, как вы его обновляете из кода. Без сомнения, у вас есть ошибка. – Will
Отредактированный пост со всей необходимой информацией. Спасибо за вашу помощь. @Will – Millkovac
И с этой информацией у нас есть ответ! Простое исправление, и вы будете в пути. – Will