类中的可观察集合

时间:2014-05-07 19:04:37

标签: c# wpf observablecollection

我正在尝试在类中实现一个可观察的集合。

我正在制作银行应用程序来解决这个问题。

我有这些课程

  1. 帐户
  2. depositAccount
  3. 交易
  4. 在我创建的帐户类中

    private ObservableCollection<transaction> _accountTransactions;
    
    public ObservableCollection<transaction> accountTransactions
    {
        get { return _accountTransactions; }
        set { _accountTransactions = value; }
    }
    
    public account()
    {
        _accountTransactions = new ObservableCollection<transaction>();
    }
    

    这意味着每个账户贷款或存款都将创建一个可观察的集合来存储交易。

    我创建了一个新的存款帐户,其余额为第一笔交易,并将该帐户存储在名为lstDepositAccount的列表框中。

    public depositAccount(double openingBalance)
    {
        transaction newTransaction = new transaction();
        newTransaction.accountCredit = openingBalance;
        accountTransactions.Add(newTransaction);     
    }
    

    这很有效。

    现在我想要做的是从lstDepositAccount的列表框中选择一个帐户 向ObservableCollection

    添加新交易

    当下面选择一个帐户时,我想在另一个名为lstDepositTransactions的列表框中显示交易列表。

    当我创建一个新的存款帐户时,它可以工作,但是第一个交易已经填充,但只显示(收集)。

    在课堂交易中,我覆盖了ToString方法,但仍然无法提供帮助。

    public override string ToString()
    {
        return " Transaction Date:" + transactionDate.ToString() + " " + "Transaction Amount: " + accountCredit.ToString();
    }
    

    这是创建帐户然后创建新交易的2个按钮的代码

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        double openingBalance = double.Parse(txtDepositOpiningBalance.Text);
        depositAccount newDepositAccount = new depositAccount(openingBalance);
    
        newDepositAccount.createdBy = txtDepositStaffMemberName.Text;
        newDepositAccount.accountNumber = int.Parse(txtDepositAccountNumber.Text);
        newDepositAccount.openingBalance = double.Parse(txtDepositOpiningBalance.Text);
        newDepositAccount.interestRate = double.Parse(txtDepositAccountInterestRate.Text);
    
        lstDepositAccount.Items.Add(newDepositAccount);
        lstSelectedAccountTransactions.Items.Add(newDepositAccount.accountTransactions);
    }
    
    private void btnNewTransaction_Click(object sender, RoutedEventArgs e)
    {
    
        transaction newTransaction = new transaction();
        newTransaction.accountCredit = double.Parse(txtTransactionAmount.Text);
        newTransaction.transactionDate = (DateTime)dteTransactionDate.SelectedDate;
    
        lstSelectedAccountTransactions.Items.Add(newTransaction);
    
    }
    

    当我创建一个帐户时,第一个事务显示为(集合),之后只有覆盖到字符串方法才有效。

    我在第一次交易时创建新帐户时如何覆盖ToString方法的任何想法。

    我能看到的唯一方法是分开进行交易而不是一开始就进行交易。

    对于这篇长篇文章感到抱歉,但我希望它具有可读性和可理解性

0 个答案:

没有答案