Я создал приложение для Android с Xamarin и MvvmCross. Я хочу привязать некоторые виды (текст, редактирование текста, кнопки) к моей ViewModel. Пока ничего странного. Но мои привязки не применяются ... Когда я использую типизированный FindViewById, я не получаю трассированную ошибку, но привязки не применяются.MvvmCross: пустая цель привязки передана MvxTargetBindingFactoryRegistry
При запуске приложения, у меня есть следующий след:
MvxBind:Error: Empty binding target passed to MvxTargetBindingFactoryRegistry
MvxBind:Warning: Failed to create target binding for binding for TextProperty
Мое переопределение OnCreate(Bundle bundle)
пустоты:
SetContentView(Resource.Layout.Reference);
var referenceTextView = FindViewById(Resource.Id.referenceEditView); // untyped FindViewById
var siteTextView = FindViewById<TextView>(Resource.Id.siteTextView); // typed FindViewById<T>
//var goButton = FindViewById<Button>(Resource.Id.goButton);
var bindingsSet = this.CreateBindingSet<ReferenceView, ReferenceViewModel>();
bindingsSet.Bind(referenceTextView).To(vm => vm.Reference).Mode(MvxBindingMode.TwoWay);
bindingsSet.Bind(siteTextView).To(vm => vm.Site);
//bindingsSet.Bind(goButton).To(vm => vm.GoCommand);
bindingsSet.Apply();
base.OnCreate(bundle);
Я пытался сделать в AXML:
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/siteTextView"
android:text="####"
local:MvxBind="Text Site"
android:gravity="center" />
<EditText
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/referenceTextView"
android:hint="Numéro de dossier"
local:MvxBind="Text Reference" />
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Accéder"
android:id="@+id/goButton"
local:MvxBind="Click GoCommand" />
Получатели и сеттеры моих свойств используют метод RaiseAndSetIfChanged:
private string _reference;
public string Reference
{
get { return _reference; }
set { this.RaiseAndSetIfChanged(ref _reference, value,() => Reference); }
}
Я один и тот же класс LinkerPleaseInclude
чем LinkerPleaseInclude исходного класса. Моя настройка наследуется от MvxAndroidSetup
класс И на других моделях ViewModels привязки применяются правильно.
Уверен, у меня может быть оговорка: я использовал разные подходы, которые я знаю. У меня есть строка, указанная в моем AXML-файле. –
Не беспокойтесь, как правило, на Android я склонен делать привязки в xaml, если это не что-то необычное. –