C++ .NET ChartTrack und Binding Source
-
Hallo
da ich nicht mehr weiterkomme und fast am Verzweifeln bin hoffe ich jetzt, dass mir einer von euch helfen kann:
Ich habe drei Klassen A, B und C. Eine Instanz von A läuft über die komplette Programmlaufzeit und enthält eine "List" Liste mit Objekten.
Von B kann eine Instanz erstellt werden, welche eine Oberfläche zum editieren der Liste darstellt.
Von C kann eine Instanz erstellt werden, hier werden Daten innerhalb eines MS Chart (System.Windows.Forms.DataVisualization.Charting.Chart) visualisiert. Einer der Graphen stellt den Inhalt der Liste aus A dar, auf welche mit einer get-Methode zugegriffen werden kann. Liste und Chart sind mit einer Bindingsource verbunden.
Instanzen von B und C können zur Laufzeit beliebig erstellt und vernichtet werden, je nach Bedarf.
Soweit klappt alles ganz gut.
Jedoch wird der Chart nicht aktualisiert, wenn ich an der Liste etwas ändere. Hierfür habe ich mit der BindingSource extra einen ListChanged event erstellt, welcher aber leider nicht richtig anspricht.
Habe ich irgendwo einen prinzipiellen Denkfehler oder woran könnte es liegenGruß
Hier noch der relevante Code in Klasse C:
in der Header-Datei:private: System::Windows::Forms::DataVisualization::Charting::Chart^ chartTrack; private: System::Windows::Forms::BindingSource^ meineBindingSource; private: System::Void meineBindingSource_ListChanged(System::Object^ sender, System::ComponentModel::ListChangedEventArgs^ e) { this->chartTrack->Update(); }
und in der CPP in der Funktion OnLoad:
this->meineBindingSource->DataSource=((MainForm^)ParentForm)->getMeineListe(); this->chartTrack->Series[1]->Points->DataBind(this->meineBindingSource, "Zeit", "Wert", "Label=Num");
P.S. Fehler beim Compilieren werden nicht ausgegeben und der Event ListChanged wird nur beim Initialisieren der Klasse C aufgerufen, danach läuft der Debugger auch wenn ich die Liste (Mittels Klasse
ändere nicht mehr in den Haltepunkt.