Ich habe ein benutzerdefiniertes Objekt, das INotifyPropertyChanged implementiert. Ich habe eine Auflistung dieser Objekte, wobei die Auflistung auf BindingList basiert Ich habe eine Bindungsquelle für die Auflistung erstellt und legen Sie die Datenquellen der Bindungsquelle und Datagridview fest.Wie aktualisiere ich eine datengebundene Datagridview von einem Hintergrund Thread
Alles funktioniert gut, außer dass ich Eigenschaften für das benutzerdefinierte Objekt aus Hintergrundthreads aktualisieren muss. Wenn ich dies tue, erhalte ich den folgenden Fehler:
BindingSource kann keine eigene Datenquelle sein. setzen Sie nicht die Datasource und Datamember Eigenschaften auf Werte, den Binding
refere zurück fand ich den folgenden Beitrag, dass mein genaues Problem scheint (und Lösung?) zu haben, aber ich kann es nicht ganz herausfinden. Ich habe die beiden Event-Funktionen in meiner Sammlung Klasse
I erstellt und initialisiert die oper Variablen pro der Post in meinem Business-Objekt, und dann. Dies kompiliert korrekt, aber hängt ohne Ausnahme beim Ausführen.
Ich habe viele Posts gesehen zu verwenden Invoke/Begin Invoke, aber ich rufe keine Funktionen auf der Benutzeroberfläche, nur Business-Objekte aktualisieren, so dass ich nicht sicher bin, wo ich die Aufrufe aufrufen würde.
Eine Einschränkung: Ich möchte, dass das Geschäftsobjekt nicht darüber informiert, wer es anzeigt (da mehrere Benutzer vorhanden sind). Daher werden GUI-Verweise in das Geschäftsobjekt gesendet, damit ich später mit diesen Verweisen aufrufen kann eine Option.
@Marc Gravell [Ich weiß, der Beitrag ist alt, aber ..Wenn aus einer anderen Liste ThreadedBindingList (meine List) instanziiert - es gibt keine Methode dafür. Sollte die Methode nicht vorhanden sein, damit diese "vollständig" ist oder gibt es ein Threading-Problem? – Stix