【发布时间】:2011-11-21 01:22:39
【问题描述】:
所以我有两个组合框(comboBoxFromAccount 和comboBoxToAccount)。每个都有相同的数据源,即 AccountsList(从父表单传递的 BankAccount 对象列表)。
我想这样做,如果在其中一个组合框中选择了一个项目,则在另一个组合框中将不再可选择它。我尝试这样做的方法是将 BankAccounts 列表从 comboBoxFromAccount 复制到 comboBoxTo 帐户,然后从 comboBoxToAccount 中删除 comboBoxFromAccount 的选定索引。
我想我已经接近了,但似乎发生的是我有一个空白的 comboBoxToAccount。
这是我的代码:
private BankAccountCollection accountsListTransferTo = new BankAccountCollection();
// public property for passing collection data to the dialog
public BankAccountCollection AccountsList
{
get { return accountsListTransferTo; }
set { accountsListTransferTo = value; }
}
// Initial loading
private void TransferFundsDialog_Load(object sender, EventArgs e)
{
textBoxAmount.Text = String.Empty;
textBoxAmount.Select();
comboBoxFromAccount.DataSource = AccountsList;
accountsListTransferTo.AddRange(AccountsList); // Copy content
accountsListTransferTo.Remove(comboBoxFromAccount.SelectedItem as BankAccount); // Remove item
comboBoxToAccount.DataSource = accountsListTransferTo; // Data binding
}
private void comboBoxFromAccount_SelectedIndexChanged(object sender, EventArgs e)
{
accountsListTransferTo.Clear(); // Clear list, if you don't to it, AddRange will just add more items.
accountsListTransferTo.AddRange(AccountsList); // Copy ALL accounts
accountsListTransferTo.Remove(comboBoxFromAccount.SelectedItem as BankAccount); // Remove selected, so user cannot transfer to same account
// Refresh data binding
comboBoxToAccount.DataSource = null;
comboBoxToAccount.DataSource = accountsListTransferTo;
// Select very first item in "TO" combobox
comboBoxToAccount.SelectedIndex = 0;
}
我们将不胜感激。
【问题讨论】:
标签: c# winforms combobox unique