Итак, у меня есть два комбинированных списка (comboBoxFromAccount и comboBoxToAccount).Каждый из них имеет один и тот же источник данных, который представляет собой AccountsList (список объектов BankAccount, который был передан из родительской формы).
Я хотел бы сделать так, чтобы, если элемент выбран в одном из комбинированных списков, онбольше не будет выбираться в другом.Я пытаюсь это сделать, скопировав список банковских учетных записей из comboBoxFromAccount в учетную запись comboBoxTo и удалив выбранный индекс comboBoxFromAccount из comboBoxToAccount.
Я думаю, что я близкоКажется, это происходит, если у меня есть пустой 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;
}
Помощь будет принята.