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)); }); }); } } } }
public InvoiceStatusControl() { InitializeComponent(); DataContextChanged += (s, args) => { if (ViewModel != null && ViewModel != _oldValue) { Bindings.Update(); } if (ViewModel == null) { Bindings.StopTracking(); } _oldValue = ViewModel; }; }