0
Цель состоит в том, чтобы отобразить диалоговое окно для выбора даты при нажатии на EditText
.Диалоговое окно отображения обязательной привязки MvvmCross
Я прав, чтобы реализовать привязку, которая будет показывать диалог при нажатии. Код выглядит следующим образом:
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
метод конкретизированного диалога. Может ли это быть реализовано в любом случае?
Вообще я стараюсь показать диалог, используя шаблон InteractionRequest - см http://stackoverflow.com/questions/22639808/ для полного объяснения – Stuart