2013-11-28 80 views
0

我是C#中的童話新手,並試圖學習它。 我需要一個對話框來將資金從一個帳戶轉移到另一個帳戶,所有帳戶都屬於一個特定的客戶,因此我決定將客戶的accountCollection定義爲客戶類的靜態變量。在對話框中有兩個組合框,其中一個組合框從賬戶持有,另一組持有賬戶。我使用DataSourse成員填充它們。但是這裏的問題是我從一個組合框中選擇的帳戶在另一個組合框中選擇了相同的帳戶。我不知道如何解決它。如果任何人都可以給我一些提示,真的很感激。 這裏是我的工作:使用2個combox從一個數據集合中填充

public partial class TransferDialog : Form 
{ 
    string enteredAmount; 
    int fromComboBoxSelectedIndex; 
    int toComboBoxSelectedIndex; 



    public TransferDialog() 
    { 
     InitializeComponent(); 
    } 

    private void TransferDialog_Load(object sender, EventArgs e) 
    { 
     pupulateComboBox(); 
     comboBoxFromAccountTransferDialog.DisplayMember = "AccountName"; 
     comboBoxToAccountTransferDialog.DisplayMember = "AccountName"; 
    } 

    private void pupulateComboBox() 
    { 
     AccountCollection accountsForFromComboBox = new AccountCollection(); 
     AccountCollection accountsForToComboBox = new AccountCollection(); 
     accountsForFromComboBox = Customer.Accounts; 
     accountsForToComboBox = Customer.Accounts; 
     comboBoxFromAccountTransferDialog.DataSource = accountsForFromComboBox; 
     comboBoxToAccountTransferDialog.DataSource = accountsForToComboBox; 
    } 

    private void buttonOkTranserFundDialog_Click(object sender, EventArgs e) 
    { 
     fromComboBoxSelectedIndex = comboBoxFromAccountTransferDialog.SelectedIndex; 
     toComboBoxSelectedIndex = comboBoxToAccountTransferDialog.SelectedIndex; 
     enteredAmount = textBoxTransferAmont.Text; 
     this.DialogResult = DialogResult.OK; 
    } 


} 
+0

是否有任何財產,以確定一個帳戶?那是'AccountName'? –

+0

順便說一句,我可以看到,2個組合框具有相同的源'Customer.Accounts',所以它們應該始終具有相同的選定項目。 –

回答

0

您最初定義兩個單獨的列表。

AccountCollection accountsForFromComboBox = new AccountCollection(); 
AccountCollection accountsForToComboBox = new AccountCollection(); 

但是,然後你指向他們兩個相同Customer.Accounts集合。所以現在他們引用了同一個對象。

accountsForFromComboBox = Customer.Accounts; 
accountsForToComboBox = Customer.Accounts; 

然後你在兩個組合框,這兩者也都是引用相同Customer.Accounts收集組的數據源。你需要保持他們彼此分開。

comboBoxFromAccountTransferDialog.DataSource = accountsForFromComboBox; 
comboBoxToAccountTransferDialog.DataSource = accountsForToComboBox; 

您需要在不引用相同對象的情況下填充這些初始變量。

我不知道什麼AccountCollection看起來像內部,所以我不知道我可以推薦如何從Customer.Accounts填充每個變量。

如果它只是一個列表,你應該能夠使用:

var accountsForFromComboBox = new AccountCollection(Customer.Accounts); 
var accountsForToComboBox = new AccountCollection(Customer.Accounts); 
+0

嗨格蘭特! AccountCollection is List user2730833

+0

在這種情況下,請嘗試:'accountsForFromComboBox = new List (Customer.Accounts)' –

相關問題