Система привязки WinForms обнаруживает, что оба комбинированных списка подключены к одному и тому же источнику данных и (полезно) синхронизирует изменения между ними.
Чтобы избежать этого, вы должны убедиться, что каждый комбинированный список имеет отдельный источник данных.
Одним из способов является использование соответствующего невизуального компонента из панели инструментов ( BindingSource ).
Другое, если вы устанавливаете привязки с помощью кода, это использовать BindingList . Обратите внимание, что существует одна ловушка с BindingList - она может действовать как оболочка :
[] Конструктор BindingList создает коллекцию WRAPPER вокруг исходного списка. Он не создает новый список, содержащий те же элементы. (Я никогда не видел это задокументировано, но проверил с помощью Reflector).
- http://www.nichesoftware.co.nz/blog/200809/databinding-lists
Вместо:
editDebitAccount.DataSource = accountsList;
editCreditAccount.DataSource = accountsList;
используйте это:
editDebitAccount.DataSource = new BindingList(accountsList);
editCreditAccount.DataSource = new BindingList(accountsList);