MvvmCross自定义绑定显示对话框

MvvmCross custom binding display dialog

目标是在点击 EditText 时为用户显示 select 日期的对话框。

我打算实现点击时显示对话框的绑定。代码如下:

public class EditDateBinding : BindingWrapper<EditText, DateTime>
{
    public EditDateBinding(EditText androidControl) : base(androidControl)
    {
    }

    public override void SubscribeToEvents()
    {
        Target.Click += InputClick;
    }

    private void InputClick(object sender, EventArgs args)
    {
        DateTime parsedDate = DateTime.Now;
        DateTime.TryParse(Target.Text, CultureInfo.CurrentCulture, DateTimeStyles.None, out parsedDate);

        var dialog = new DatePickerDialogFragment(Target.Context, parsedDate, OnDateSet);

        dialog.Show(
                    // Can't get fragment manager here
            , "date");
    }

    private void OnDateSet(object sender, DatePickerDialog.DateSetEventArgs e)
    {
        SetValueToView(Target, e.Date);
    }

    protected override void Dispose(bool isDisposing)
    {
        base.Dispose(isDisposing);
        if (isDisposing)
        {
            if (Target != null)
            {
                Target.Click -= InputClick;
            }
        }
    }

    protected override void SetValueToView(EditText androidControl, DateTime value)
    {
        androidControl.Text = value.ToShortDateString();
    }
}

但我找不到获取 FragmentManager 实例以调用实例化对话框的 Show 方法的方法。这可以通过任何方式实现吗?

找到实现方法:

 var act = (Activity) Target.Context;
 dialog.Show(act.FragmentManager, "date");