public void OpenInvoice(TLMessageMediaInvoice mediaInvoice)
        {
            var message = Items.OfType <TLMessage48>().FirstOrDefault(x => x.Media == mediaInvoice);

            if (message != null)
            {
                var replyMarkup = message.ReplyMarkup as TLReplyInlineMarkup;
                if (replyMarkup != null)
                {
                    TLKeyboardButtonBuy buyButton = null;
                    foreach (var row in replyMarkup.Rows)
                    {
                        foreach (var button in row.Buttons)
                        {
                            buyButton = button as TLKeyboardButtonBuy;
                            if (buyButton != null)
                            {
                                break;
                            }
                        }
                    }

                    if (buyButton != null)
                    {
                        Execute.BeginOnUIThread(() =>
                        {
                            View.CreateBitmapCache(() =>
                            {
                                Execute.BeginOnUIThread(() => Send(message, buyButton));
                            });
                        });
                    }
                }
            }
        }
예제 #2
0
        public InvoiceStatusControl()
        {
            InitializeComponent();

            DataContextChanged += (s, args) =>
            {
                if (ViewModel != null && ViewModel != _oldValue)
                {
                    Bindings.Update();
                }
                if (ViewModel == null)
                {
                    Bindings.StopTracking();
                }

                _oldValue = ViewModel;
            };
        }