У меня есть ViewModel и DialogFragment для просмотра этой виртуальной машины. В ядре я показываю VM таким образомBinding MvxDialogFragment with ViewModel
this.ShowViewModel<AnnotationEditViewModel>();
у меня есть этот код в AnnotationEditDialogFragment.cs
[Register("AnnotationEditDialogFragment")]
public class AnnotationEditDialogFragment : MvxDialogFragment<AnnotationEditViewModel>
{
...
public override Dialog OnCreateDialog(Bundle savedInstanceState)
{
base.EnsureBindingContextSet(savedInstanceState);
var view = this.BindingInflate(Resource.Layout.text_annotation_dialog_fragment, null);
var titleAnnotationTextView = view.FindViewById<TextViewWithFont>(Resource.Id.titleAnnotationTextView);
var set = this.CreateBindingSet<AnnotationEditFragment, AnnotationEditViewModel>();
set.Bind(this).For(be => be.CanBeSaved).To(vm => vm.CanBeSaved);
set.Apply();
builder = new AlertDialog.Builder(Activity);
LayoutInflater inflater = Activity.LayoutInflater;
builder.SetView(view);
alertDialog = builder.Create();
return alertDialog;
}
...
}
У меня есть запрос в MainPresenter в методе Showv, где я могу обнаружить этот запрос.
если в MainPresenter я печатаю этот код:
var textAnnotationDialogFragment = Activity.FragmentManager.FindFragmentByTag(nameof(AnnotationEditFragment)) as AnnotationEditFragment ?? new AnnotationEditFragment();
textAnnotationDialogFragment.Show(Activity.FragmentManager, nameof(AnnotationEditFragment));
- Я вижу диалог, но я не связываясь с VM/
если я печатаю этот код для ShowViewModel() :
base.Show(request, fragmentRequest);
- я получаю ошибку, не было обнаружено какой-либо активности или фрагмента для моего VM/ Как мне установить диалог с привязкой к виртуальной машине?