У меня есть пользовательский объект, который реализует INotifyPropertyChanged. У меня есть коллекция этих объектов, где коллекция основана на BindingList
Я создал источник привязки для коллекции и установил источники данных для bindingsource и datagridview.
Все отлично работает, за исключением того, что мне нужно обновить свойства пользовательского объекта из фоновых потоков. при этом я получаю следующую ошибку:
BindingSource не может быть своим собственным источником данных. Не устанавливайте в свойствах DataSource и DataMember значения, ссылающиеся на BindingSource
Я нашел следующий пост, в котором, похоже, есть моя точная проблема (и решение?), Но я не могу понять это.
http://social.msdn.microsoft.com/forums/en-US/winformsdatacontrols/thread/3566f7c7-eb47-422e-ab09-9549a18da360/
Я создал и инициализировал переменные операций для каждого поста в своем бизнес-объекте, а затем поместил две функции событий в свой класс коллекции. Это правильно скомпилировано, но без исключения зависает при запуске.
Я видел много сообщений, в которых говорится об использовании Invoke / Begin Invoke, но я не вызываю какие-либо функции в пользовательском интерфейсе, я просто обновляю бизнес-объекты, поэтому я не уверен, куда я помещу вызовы invoke.
Одно ограничение: я хочу, чтобы бизнес-объект не знал, кто его отображает (так как имеется несколько потребителей), поэтому отправка ссылок GUI в бизнес-объект, чтобы позже я мог вызывать invoke с использованием этих ссылок, не является вариант.