2016-05-11 5 views
0

У меня есть список «listBox_users», привязанный к связующему источнику, и другой список «listBox_map», который также привязан. Я хочу перетащить пользователя из listBox_users в listBox_map.I сделал это очень хорошо, когда я удаляю bindingsource listBox_map. Моя проблема заключается в том, что listBox_map не добавлять новые элементы, когда источник данных определено свойство:Добавление новых элементов в список с привязкой

коллекция предметов не может быть изменен, когда свойство DataSource установлено.

private void listBox_map_DragDrop(object sender, DragEventArgs e) 
    { 

     if (e.Data.GetDataPresent(DataFormats.StringFormat)) 
     { 
      string str = listBox_users.Text; 

      listBox_map.Items.Add(str); // Error here! 
     } 

    } 

Как я могу добавить новые элементы в ListBox связанного приложения? Спасибо.

+0

Добавление элементов к источнику данных вместо использования listBox_map.Items.Add. –

+0

Вы можете посмотреть эту тему: http://stackoverflow.com/questions/5035744/items-collection-cannot-be-modified-when-the-datasource-property-is-set –

+0

Я это видел, но он сказал: «удалите DataSource ", и я должен его сохранить. –

ответ

0

Вместо использования

listBox_map.Items.Add(str); // Error here! 

ли это:

yourBindingSourceReference.Add(str); 

Это автоматически отразится на вашем listBox_map.

MSDN - BindingSource.Add

0

исправить это сам, так что я удалил свойство источника данных, и я добавил каждую строку в ListBox:

var q = 
      from user in SundicappEntities.Instance.users 
       join map in SundicappEntities.Instance.user_profile_map on user.id_user equals map.id_user 
       where map.id_profile==id_profile 
       select new 
       { 

          ListBoxItemDisplayText = user.name_user + " " + user.f_name_user  

       }; 
     foreach (var u in q) 
     { 
      listBox_map.Items.Add(u.ListBoxItemDisplayText); 
     }