private void ItemView_Click(object sender, EventArgs e) { var statusSwitch = new StatusViewSwitch((SwitchScenarioModel)BindingContext); var dialog = new DialogView(statusSwitch); statusSwitch.StateChanged += (o, args) => { if (args.Value == StatusViewSwitch.StateChangedSource.Tap) { dialog.Close(); } }; dialog.Show(Helper.GetLastParent(this)); }
private void ItemView_Click(object sender, EventArgs e) { var model = (SwitchScenarioModel)BindingContext; var statusSwitch = new StatusViewSwitch(model); var dialog = new DialogView(statusSwitch); statusSwitch.StateChanged += (o, args) => { if (args.Value == ItemView.ClickSource.CloseAnyway) { dialog.Close(); } if ((args.Value == ItemView.ClickSource.Tap && model.AcceptedValues.Length <= StatusViewSwitch.NotClosingItemsCount) || args.Value == ItemView.ClickSource.CloseAnyway) // Если количество возможных значений меньше 14, { // то при выборе одного из значений закрываем окно. dialog.Close(); // Число подобрано на основе того, сколько строчек вмещается на экран. } }; dialog.Show(DialogView.GetDialogHost(this)); }