我有一个ViewModel和DialogFragment来展示这个VM。 在核心部分,我是这样显示VM的:
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相关的任何活动或片段”的错误/ 我该如何使用绑定在VM中显示对话框?