У меня есть проект C # Windows Forms с формой, содержащей 2 списка и кнопку.
В FormLoad левый ListBox заполняется списком (около 1800 наименований), содержащим информацию о ценных бумагах (идентификатор и имя), и когда пользователь нажимает кнопку, все ценные бумаги перемещаются из левого списка в правое.
Когда я не использую BindingSources, то есть я напрямую использую свойство Items в ListBoxes, процесс перемещения занимает несколько секунд:
private void button1_Click(object sender, EventArgs e)
{
while (listBox1.Items.Count > 0)
{
Security s = listBox1.Items[0] as Security;
listBox1.Items.Remove(s);
listBox2.Items.Add(s);
}
}
Но, когда я использую BindingSources, это занимает несколько минут:
listBox1.DataSource = bindingSource1;
listBox2.DataSource = bindingSource2;
...
private void MainForm_Load(object sender, EventArgs e)
{
ICollection<Security> securities = GetSecurities();
bindingSource1.DataSouce = securities;
}
private void button1_Click(object sender, EventArgs e)
{
while (bindingSource1.Count > 0)
{
bindingSource1.Remove(s);
bindingSource2.Add(s);
}
}
В чем причина того, что способ BindingSource занимает так много времени?
Есть ли способ сделать это быстрее?