2014-01-03 2 views
2

У меня есть MvxListView, который привязывается к свойству ViewModel, которое является List<MyClass>.привязка данных к свойствам non-ViewModel в MvvMCross

MyClass - простой старый объект, имеющий логическое свойство с именем Completed, что я привязан к проверенному свойству CheckedTextView в моем шаблоне элементов списка.

Когда я нажимаю элемент списка, он вызывает команду, которая вызывает метод DoSomething(MyClass item). В методе DoSomething я присвоил свойству Completed его новое значение. Однако, поскольку MyClass не является ViewModel с объектами RaisePropertyChanged, проверенное свойство не обновляется в пользовательском интерфейсе.

Как бы выполнить привязку данных к этому базовому POCO, чтобы обновить интерфейс пользователя при изменении свойства Completed?

ответ

1

Как бы выполнить привязку данных к этому базовому POCO, чтобы обновить интерфейс пользователя при изменении свойства Completed?

Xaml/C# стиль привязки данных опирается на INotifyPropertyChanged - без этого интерфейса не имеет возможности узнать, что нужно обновить.

Чтобы получить привязку данных к работе, объекты MyClass не могут быть просто POCO - ему нужно реализовать INotifyPropertyChanged как-то - например. путем наследования от MvxNotifyPropertyChanged или путем осуществления INotifyPropertyChanged непосредственно (например, см http://msdn.microsoft.com/en-us/library/vstudio/ms229614%28v=vs.100%29.aspx)


Кроме: MvvmCross делает также сделать другие обязательные шаблоны возможные пределы INotifyPropertyChanged - например, см. INotifyChanged в FieldBinding в https://github.com/MvvmCross/MvvmCross/wiki/Databinding#rio - но для этого требуется еще нечто большее, чем просто POCOs для динамического обновления привязок.

Смежные вопросы