private void DecodeTx()
        {
            try
            {
                BTx      = Transaction.DecodeRawTx(Tx);
                TxInList = new BindingList <TxIn>();
                foreach (var item in BTx.TxInList)
                {
                    TxInList.Add(item);
                }
                // The following commented line throws Collection Read Only when item is added to BindingList!
                // TxInList = new BindingList<TxIn>(bTx.TxInList);

                ReceiveList = new BindingList <ReceivingAddress>();
                foreach (var item in BTx.TxOutList)
                {
                    ReceivingAddress r = new ReceivingAddress();
                    r.Address = GetAddressFromScript(item.PkScript);
                    r.Payment = item.Amount * BitcoinConversions.Satoshi;
                    ReceiveList.Add(r);
                }

                TotalInput  = 0;
                TotalOutput = BTx.TxOutList.Select(x => x.Amount).Aggregate((a, b) => a + b) / BitcoinConversions.Satoshi;
                Fee         = 0;

                MakeTxCommand.RaiseCanExecuteChanged();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
        void ReceiveList_ListChanged(object sender, ListChangedEventArgs e)
        {
            RaisePropertyChanged("FeePerByte");
            RaisePropertyChanged("TotalToSend");
            RaisePropertyChanged("TransactionSize");

            MakeTxCommand.RaiseCanExecuteChanged();
        }
 void ReceiveList_ListChanged(object sender, ListChangedEventArgs e)
 {
     MakeTxCommand.RaiseCanExecuteChanged();
 }