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