Intereting Posts
Как заставить SSLEngine использовать TLSv1.2 на Android (4.4.2)? Существующие тесты пользовательского интерфейса Android перестали работать после перехода на AndroidJUnitRunner Почему ViewPager и GridLayout с 30 элементами очень медленные? Android Jellybean onCreateOptionsMenu не вызывается на Nexus 7 ListView и скрытый идентификатор. Как это возможно? Как сделать хронометр в AndEngine? Как использовать собственный Textview (View) в Andengine Game Activity Divider исчезает из последнего элемента в списке, если добавлен footerview Как выровнять пользовательский диалоговый центр в Android? Как установить язык в распознавании речи на Android? Возможно ли заставить пользователей более старых версий приложений обновляться? Как добавить две новые колонки для Android SQLite Database? Recyclerview внутри прокрутки вложенной прокрутки, но не ускоряет прокрутку, как обычно Recyclerview или Nested Scrollview Анимированное загрузочное изображение в пикассо Как создать функцию Java, которая когда-то была вызвана, не может быть вызвана снова, если не будет какой-то задержки?

Xamarin Android Data-Binding с подсветкой MVVM

Оригинальный вопрос:

У меня проблема с привязкой значения из моего ViewModel к TextView в Xamarin Android с использованием MVVM Light. Значение изменяется один раз, а затем перестает работать. Даже если объект изменяется в ViewModel, а режим привязки установлен на значение по умолчанию (OneWay).

Из-за требований бизнеса я должен продолжать использовать MVVM Light и Xamarin Android.

Пример:
В моем первом фрагменте у меня есть список книг, которые привязаны к списку книг в моей модели ViewModel. В моей модели Viewmodel у меня есть объект CurrentBook, который изменяется с событием onclick в моем списке.

VM.CurrentBook = Books[index]; 

В моем втором фрагменте у меня есть заголовок, связанный с TextView

 _titleBinding = this.SetBinding(() => VM.CurrentBook.Title, () => TitleTextView.Text); 

В первый раз, когда текущая книга изменяется с NULL на экземпляр книги, название изменяется по желанию. После первого раза при изменении VM.CurrentBook = Books [index]; Название остается таким же, как и первая книга.


Обновить:

Я попробовал пару вещей с помощью Милена Павлова , я попытался перейти на

 VM.SetBinding(() => VM.CurrentBook.Title, TitleTextView, () => TitleTextView.Text, BindingMode.TwoWay); 

Это вызывает ошибку:

 System.Reflection.TargetException: Object of type '[Solution].Client.Shared.ViewModels.BooksViewModel' doesn't match target type '[Solution].Client.Android.BookDetailsFragment' 

Еще одна вещь, которую я пробовал:

 _titleBinding = this.SetBinding(() => VM.CurrentBook.Title, TitleTextView, () => TitleTextView.Text, BindingMode.TwoWay); enter code here 

Это вызывает еще одну ошибку:

 System.Reflection.TargetException: Object of type 'Android.Support.V7.Widget.AppCompatTextView' doesn't match target type '[solution].Client.Android.BookDetailsFragment' 

Я использовал эту перегрузку, когда привязка данных к xamarin android и mvvm-light:

 VM.SetBinding(() => VM.CurrentBook.Title, TitleTextView, () => TitleTextView.Text, BindingMode.TwoWay); 

Надеюсь, поможет.