예제 #1
0
        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));
        }
예제 #2
0
        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));
        }