У меня есть BindingList <> класса, для которого установлено свойство DataSource объекта BindingSource, которое, в свою очередь, установлено для свойства DataSource объекта DataGridView.
1.
Насколько я понимаю, любые добавления в список будут вызывать событие ListChanged, которое будет распространяться через BindingSource, а затем в DataGridView, который будет обновляться для отображения изменений. Это произойдет, потому что события были автоматически подключены. (Да?)
Это все хорошо, когда вся работа выполняется в потоке пользовательского интерфейса, но когда список создается и изменяется из потока, не являющегося пользовательским интерфейсом, в конечном итоге возникает исключение между потоками при обновлении сетки. Я могу понять, почему это происходит, но нет, как это исправить ...
2.
Что мне трудно понять, это где лучше всего перехватывать событие ListChanged, чтобы попытаться собрать вещи в потоке пользовательского интерфейса? Я предполагаю, что мне нужна ссылка на поток пользовательского интерфейса, чтобы помочь сделать это?
Я прочитал много постов / статей по этому вопросу, но я изо всех сил, потому что я не до конца понимаю механизмы работы здесь.
Я никогда не буду изменять какие-либо элементы, если они есть в списке, только добавляя их и первоначально очищая список.
(я использую .NET 2.0)