Инициирующее событие при изменении размера ListBox.Item - PullRequest
0 голосов
/ 14 марта 2011

Я хочу обновить / вызвать некоторую функцию, когда мой ListBox.Items.Count изменится.При добавлении к ListBox или при удалении предметов, как вызвать функцию?

Ответы [ 3 ]

1 голос
/ 14 марта 2011

Вы можете использовать ObservableCollection в качестве источника данных для списка.Затем вы можете создать обработчики для события CollectionChanged .

1 голос
/ 14 марта 2011

Нет событий для этого действия.Вам нужно будет либо выполнить одно из следующих действий:

  1. создать поток, который извлекает эту информацию и предупреждает вас (отстой)
  2. переопределить список и выставить эти события make (нормально)но почему?)
  3. просто добавьте нужный вам код в те места, где вы добавляете и удаляете его в список (что делает большинство людей)

на самом деле я думаю, что 3 - это способидти.

0 голосов
/ 15 марта 2011

Поскольку я использую AsyncBindingList и работает в потоке Background Worker.И AsyncBindingList подключен к моему ListBox.Поэтому, когда мой рабочий поток завершает свою работу, он обновляет AsyncBindingList, а в свою очередь обновляет мой listBox в форме.

Но При добавлении элементов в список я искал вызов метода, который обновляет другие элементы управления.итак, наконец я получил решение.

Решение состоит в том, что, когда рабочий поток заканчивает свою работу, он вызывает RunWorkerCompletedEventHandler.Когда он вызывает метод через RunWorkerCompletedEventHandler, я запускаю метод Forms.Invoke, который вызывает метод в классе формы, который в свою очередь обновляет все элементы управления.

Но я действительно не знаю, это лучший способ сделать это.Если у вас есть предложения.Пожалуйста, отправьте как ответ.

...