コード例 #1
0
        private void PopupMenu_MenuItemClick(object sender, PopupMenu.MenuItemClickEventArgs e)
        {
            popupMenu.Dismiss();
            switch (e.Item.ItemId)
            {
            case Resource.Id.edit:
                var intent  = new Intent(ItemView.Context, typeof(EditOutcomeActivity));
                var content = JsonConvert.SerializeObject(outcomeModel);
                intent.PutExtra("OutcomeDetail", content);

                ItemView.Context.StartActivity(intent);
                break;

            case Resource.Id.delete:
                ((Activity)ItemView.Context).RunOnUiThread(() =>
                {
                    ItemView.Context.ShowConfirmDialog(Resource.String.confirm, Resource.String.delete_outcome,
                                                       () =>
                    {
                        var dialog = ItemView.Context.CreateDialog(Resource.String.deleting_outcome, Resource.String.wait);
                        dialog.Show();
                        ((Activity)ItemView.Context).DoRequest(OutComesController.Instance.Delete(OutcomeModel),
                                                               () =>
                        {
                            dialog.Dismiss();
                            DeleteClick?.Invoke(OutcomeModel, e);
                            ItemView.Context.ShowMessage(Resource.String.delete_outcome_success);
                        });
                    },
                                                       () => { }).Show();
                });
                break;
            }
        }
コード例 #2
0
        private void PopupMenu_MenuItemClick(object sender, PopupMenu.MenuItemClickEventArgs e)
        {
            popupMenu.Dismiss();
            switch (e.Item.ItemId)
            {
            case Resource.Id.edit:
                var intent  = new Intent(ItemView.Context, typeof(EditFeeActivity));
                var content = JsonConvert.SerializeObject(moneyState.MoneyModel);
                intent.PutExtra("MoneyDetail", content);

                ItemView.Context.StartActivity(intent);
                break;

            case Resource.Id.delete:
                ((Activity)ItemView.Context).RunOnUiThread(() =>
                {
                    ItemView.Context.ShowConfirmDialog(Resource.String.delete_fee, Resource.String.confirm_delete,
                                                       () =>
                    {
                        var dialog = ItemView.Context.CreateDialog("Deleting fee", "Please wait");
                        dialog.Show();
                        // delete
                        ((Activity)ItemView.Context).DoRequest(Task.Run(async() =>
                        {
                            await MoneysController.Instance.Delete(moneyState.MoneyModel);
                            foreach (var userMoneyModel in UserMoneysController.Instance.Values.Where(x =>
                                                                                                      x.MoneyId == moneyState.MoneyModel.Id))
                            {
                                await UserMoneysController.Instance.Delete(userMoneyModel);
                            }
                        }), () =>
                        {
                            DeleteClick?.Invoke("Success", null);
                            dialog.Dismiss();
                        });
                    },
                                                       () => { }).Show();
                });
                break;
            }
        }
コード例 #3
0
        protected override void OnAttached()
        {
            Effect = (CustomControl.PopupMenuControl.PopupMenu.InternalPopupEffect)Element.Effects.FirstOrDefault(e => e is CustomControl.PopupMenuControl.PopupMenu.InternalPopupEffect);

            if (Effect != null)
            {
                Effect.Parent.OnPopupRequest += OnPopupRequest;
            }

            MessagingCenter.Unsubscribe <string, string>("CustomControl", "ClosePopup");

            if (Control != null || Container != null)
            {
                ToggleMenu = new Android.Widget.PopupMenu(Forms.Context, Control == null ? Container : Control);
                ToggleMenu.MenuItemClick += MenuItemClick;
                MessagingCenter.Subscribe <string, string>("CustomControl", "ClosePopup", (sender, args) =>
                {
                    Xamarin.Forms.Application.Current.Dispatcher.BeginInvokeOnMainThread(() =>
                    {
                        ToggleMenu.Dismiss();
                    });
                });
            }
        }