protected override void OnDetachingFrom(Entry bindable) { var controller = EntryBind.GetModel(bindable); bindable.Completed -= BindableOnCompleted; bindable.TextChanged -= BindableOnTextChanged; controller.FocusRequested -= ControllerOnFocusRequested; controller.PropertyChanged -= ControllerOnPropertyChanged; base.OnDetachingFrom(bindable); }
protected override void OnAttachedTo(Entry bindable) { base.OnAttachedTo(bindable); var controller = EntryBind.GetModel(bindable); bindable.Completed += BindableOnCompleted; bindable.TextChanged += BindableOnTextChanged; controller.FocusRequested += ControllerOnFocusRequested; controller.PropertyChanged += ControllerOnPropertyChanged; }
private void BindableOnCompleted(object sender, EventArgs e) { var entry = (Entry)sender; var controller = EntryBind.GetModel(entry); var ice = new EntryCompleteEvent(); controller.HandleCompleted(ice); if (!ice.HasError) { ElementHelper.MoveFocusInPage(entry, true); } }
private void BindableOnTextChanged(object sender, TextChangedEventArgs e) { if (updating) { return; } var entry = (Entry)sender; var controller = EntryBind.GetModel(entry); controller.Text = e.NewTextValue; }
private void ControllerOnPropertyChanged(object sender, PropertyChangedEventArgs e) { var entry = AssociatedObject; if (entry is null) { return; } if (e.PropertyName == nameof(EntryModel.Text)) { var controller = EntryBind.GetModel(entry); updating = true; entry.Text = controller.Text; updating = false; } else if (e.PropertyName == nameof(EntryModel.Enable)) { var controller = EntryBind.GetModel(entry); entry.IsEnabled = controller.Enable; } }