Я использую MVVMCross и имею проблему с привязками MvxDialogFragment. У меня есть базовая услуга, которая разрешена в проекте Core PCL, добавляет реализации пользовательских сервисов в проектах iOS и Android, полученных из базового класса сервиса.Android access MvxDialogFragment view from service
В андроида службе я построить и показать MvxDialogFragment экземпляр:
var top = (MvxFragmentActivity)Mvx.Resolve<IMvxAndroidCurrentTopActivity>().Activity;
if (top == null)
{
throw new MvxException("Cannot get current top activity");
}
var dlg = new AlertDialog.Builder(top);
dlg.Create().Show();
dialog = new MyDialog
{
Cancelable = false
};
dialog.Show(top.SupportFragmentManager, "");
И у меня есть простое диалоговое расположение:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/test_click_button"
android:text="Test"
app:MvxBind="Click TestClickCommand" />
</LinearLayout>
Так что моя цель заключается в Acces команд базового обслуживания от dialogFragment, который конкретизируется от обслуживания. Как я могу это сделать?
В качестве альтернативы, я хочу обработать свою кнопку нажатием на сервис, но не могу найти способ сделать это, потому что мои свойства View, ViewModel или Dialog являются нулевыми.
Как можно обрабатывать клики в сервисе или осуществлять самообучение?
Если вы хотите получить доступ к представлению от службы, вы в основном делаете это неправильно. Шаблон Mvvm не предназначен для этого. Вы также говорите: «Я не хочу размещать свои служебные команды в любом режиме просмотра». Команды не живут в сервисах, а в ViewModels. Способы вызова службы ViewModels. Возможно, я просто неправильно понял все это ... – xleon
Спасибо за ответ! Я отредактировал вопрос, главная цель: как связать кнопки dialogfragment с сервисными командами – Fragment