1 голос
 
1299 просмотров
27.12.2017 / 17:40  Витаминыч

Как удалить элемент из ComboBox, который использует свойство DataSource

На форме имеется TabPage, на котором есть ComboBox, четыре TextBox (по количеству свойств в классе) и собственно кнопка для удаления.

Читаем файл построчно, парсим, заполняем полученными данными List<Record> lr, а в List<string> elements идет только одно свойство.
  1. ... {
  2.     string[] values = line.Split(new char[] {';'}, StringSplitOptions.RemoveEmptyEntries);
  3.     // Record(Name, Mass, Dimension, Material)
  4.     record = new Record(values[0], Convert.ToDouble(values[1]), values[2], values[3]);
  5.     lr.Add(record);
  6.     elements.Add(record.Name);
  7. }
  8. // Используем DataSource
  9. cbParts.DataSource = elements;
  1. private void TabPageEditAndFind_Enter(object sender, EventArgs e)
  2. {
  3.      // Получаем текущий выделенный элемент
  4.      currentIndex = cbParts.SelectedIndex;
  5.      // Заполняем поля
  6.      tbName.Text = lr[currentIndex].Name;
  7.      tbWeight.Text = Convert.ToString(lr[currentIndex].Mass);
  8.      tbDimensions.Text = lr[currentIndex].Dimension;
  9.      tbMaterial.Text = lr[currentIndex].Material;
  10. }
  1. // Кнопка удаления
  2. private void Button3_Click(object sender, EventArgs e)
  3. {
  4.         currentIndex = cbParts.SelectedIndex;
  5.         lr.RemoveAt(currentIndex);
  6.         elements.RemoveAt(currentIndex);
  7.         cbParts.DataSource = elements; // Не обновляет :с
  8.  
  9.         TabPageEditAndFind_Enter(sender, e);
  10. }
При нажатии кнопки поля обновляются, а вот сам ComboBox cbParts так и остается. Из-за это все индексы потом ломаются и программа падает.

И еще при переключении элементов с первого на любой другой все работает, а вот снова на первый - поля не обновляются.
Ответы
 
0 голосов
 
# 29.12.2017 / 03:53  oldkaheti
cbParts.Items.RemoveAt
есть связывание
Изм. oldkaheti от 29.12.2017 / 03:54
30.12.2017 / 19:22  Витаминыч
Не работает, невозможно изменять коллекцию..
Всего: 1

Реклама

Мы в соцсетях

tw tg yt gt