Я читаю ТАК сообщения за несколько часов и пробую разные вещи (например, обновление и установка на ноль и еще много чего), и вот где я нахожусь.
У меня есть класс, Человек и несколько ответвлений Человека, которые наследуют его. Как ребенок, взрослый, подросток, и тому подобное. Все они имеют общие свойства Name, Age, Birthday, и тому подобное.
Итак, у меня есть два списка, представляющих людей из настоящего и прошлого:
BindingList<Human> presentBind
BindingList<Human> pastBind
и два списка:
viewHumansBox
removeHumansBox
Я создал метод для инициализации ListBoxes с этими источниками данных. Вызывается после InitializeComponent в Form1 ():
private void Show()
{
viewHumansBox.DataSource = null;
viewHumansBox.DataSource = presentBind;
removeHumansBox.DataSource = null;
removeHumansBox.DataSource = presentBind;
}
Таким образом, одна из моих панелей в форме добавляет новых людей в ViewHumansBox и удаляет HumansBox с помощью .Добавить через кнопку Добавить. Это работает очень хорошо, и люди заполняют списки (я сделал переопределение для ToString (), поэтому он просто показывает их имена в списках, а их другие характеристики отображаются рядом с метками, когда они выбраны).
У меня есть панель для удаления людей. Он показывает ListBox и кнопку Удалить. Как вы видели там, removeHumansBox заполняется presentBind. Когда вы выбираете Человека в ListBox и нажимаете удалить, ListBox должен автоматически обновиться, и Человек должен исчезнуть из viewHumansBox и удалитьHumansBox.
Я не могу обновить его, или, возможно, он не удаляется должным образом. Прямо сейчас я только что попробовал:
private void removeButton_Click(object sender, EventArgs e) {
if (removeHumansBox.Items.Count >= 1)
{
if (removeHumansBox.SelectedValue != null)
{
var items = (BindingList<Human>)removeHumansBox.DataSource;
var item = (Human)removeHumansBox.SelectedValue;
removeHumansBox.DataSource = null;
removeHumansBox.Items.Clear();
items.Remove(item);
removeHumansBox.DataSource = items;
}
}
else
{
System.Windows.Forms.MessageBox.Show("None");
}
}
Я также пробовал обновлять и обновлять, так что наверняка я делаю что-то очень неправильное. Прошли часы, и я действительно могу помочь.
ListBox просто остается неизменным, когда я выбираю элемент и нажимаю кнопку «Удалить».