コード例 #1
0
        static async Task ShowSelectTimeAlert(TipScheduler scheduler, TimeSpan?maybeTime = null)
        {
            var isEdit = maybeTime != null;
            var time   = maybeTime ?? DateTime.Now.TimeOfDay;

            var tp = new TimePicker
            {
                Format = "HH:mm",
                Time   = time.MinutesOnly()
            };
            var cancelButton = new AlertButton
            {
                Text          = isEdit ? "Verwijder" : "Annuleer",
                IsDestructive = isEdit,
                Action        = () =>
                {
                    if (isEdit)
                    {
                        scheduler.RemoveTime(time);
                    }
                    return(false);
                }
            };

            tp.PropertyChanged += (sender, e) =>
            {
                if (e.PropertyName == TimePicker.TimeProperty.PropertyName)
                {
                    return; // TODO: change delete into cancel button
                }
            };

            await Alert.Show(
                "Tijd " + (isEdit ? "bewerken" : "toevoegen"),
                "Voer hieronder de tijd in waarop je een tip wil ontvangen.",
                tp,
                cancelButton,
                new AlertButton
            {
                Text        = "Opslaan",
                IsPreferred = true,
                Action      = () =>
                {
                    var newTime = tp.Time.MinutesOnly();
                    if (!isEdit || newTime != time)
                    {
                        if (isEdit)
                        {
                            scheduler.RemoveTime(time);
                        }
                        scheduler.AddTime(newTime);
                    }
                    return(false);
                }
            }
                );
        }
コード例 #2
0
            public TimeCell(TipScheduler scheduler, TimeSpan time)
            {
                Text    = "Om " + time.ToString(@"hh\:mm") + " uur";
                Command = new Command(async() =>
                {
                    await ShowSelectTimeAlert(scheduler, time);
                });
                //StyleId = "disclosure";
                var edit = new MenuItem
                {
                    Text = "Wijzig"
                };

                edit.Clicked += async(sender, e) =>
                {
                    await ShowSelectTimeAlert(scheduler, time);
                };
                var delete = new MenuItem
                {
                    Text          = "Verwijder",
                    IsDestructive = true
                };

                delete.Clicked += (sender, e) =>
                {
                    scheduler.RemoveTime(time);
                };
                ContextActions.Add(edit, delete);
            }