Я пытаюсь связать окно информационного содержимого, которое появляется при нажатии на маркер в MapView для Android.Binding Android.Views.View с ViewModel с MvvmCross на Android
Я создал собственный класс менеджера, который принимает ItemSource и MapView (ObservableCollection) и добавляет маркеры на карте по мере изменения коллекции.
Теперь я хотел бы, чтобы связать окно InfoContent, генерируемый GetInfoContents(Marker marker)
В настоящее время я вынужден получить заполнение полей вручную, как показано ниже, но я хотел бы поле, чтобы быть данными, связанные непосредственно в макете с ток ViewModel
public override Android.Views.View GetInfoContents(object item, Marker marker)
{
var vm = item as DetailCalloutViewModel;
if (vm != null) {
var view = _layoutInflater.Inflate(Resource.Layout.view_store_marker_info_window, null);
var address = view.FindViewById<TextView>(Resource.Id.address);
var description = view.FindViewById<TextView>(Resource.Id.description);
var badge = view.FindViewById<TextView>(Resource.Id.badge);
address.Text = vm.Address;
description.Text = vm.Location.Description;
badge.Text = vm.BadgeNumber;
return view;
}
return null;
}
У меня есть менеджер, который привязывает маркеры от наблюдаемой коллекции в другом классе. Подпись класса - это открытый публичный класс BaseMapViewDataBindingSource: Java.Lang.Object, IOnMapReadyCallback, GoogleMap.IInfoWindowAdapter 'и это. BindingInflate недоступно оттуда – wishmaster
Хорошо, я вижу проблему. Я немного обновил, но не очень доволен. Без BindingContext вы не можете использовать привязку MvvmCross. – Matt