Instanziierung einer Klasse und dem Nutzen derer Eigenschaften



  • Hallo Leute,

    ich bin neu hier und komme gleich mit einem Problem zur Sache. 🙂

    Und zwar:
    Ich habe 3 Klassen: Studio, Service, PlugIn.

    Die Klasse Service wurde in Studio instanziert und die Klasse PlugIn in Service, so das die Kommunikation von Studio nach Plugin über Service durch Funktionsaufrufe erfolgt und zurück über Events.

    Die Klasse Service besitzt ein Property namens ChannelList vom Typ DataTable.

    Rufe ich nun, vom Studio aus, die Funktion Service.AddChannel 3 mal auf, werden demzufolge der ChannelList 3 Zeilen angehangen, die lasse ich mir auch in einem GridView auf der Oberfläche(Studio) ausgeben.

    Werden in der Klasse PlugIns Werte erzeugt, so wird das dabei geworfene Event (Plugin.ValueChanged) von der Klasse Service abgefangen und die erzeugten Werte mitgeliefert. Diese Werte müssten nun in das DataTable geschrieben werden.

    Mein Problem: Sollen diese Werte in das DataTable geschrieben werden, besitzt das Property auf einmal wieder 0 Zeilen. Füge ich aber vom Studio aus, wieder eine Zeile hinzu, werden mir wieder alle ausgegeben.

    Löse ich nun Service.AddChannel vom Event abfangen(Plugin.ValueChanged) der Klasse PlugIn aus, werden dem Property Zeilen angehangen, die nur beim Eventaufruf wieder gefunden werden.

    Als hätte ich 2 Properties, eines das vom Studio genutzt wird und eines das bei dem Eventaufruf genutzt wird.

    Kurz und knapp:
    Aufruf vom Studio > Alle Zeilen von Service.AddRow sind verfügbar.
    Aufruf durch Event vom PlugIn > Alle Zeilen von Plugin.ValueChanged sind verfügbar.

    Woran kann das liegen?! Über eine schnelle Hilfe würde ich mich sehr freuen.

    Mfg NozzNazz



  • Klingt so als ob Du mit zwei verschiedenen DataTables arbeitest. Vllt irgendwo mit new eine neue Table erzeugt statt eine Referenz zu übernehmen?



  • Nur bei der Instanzierung der Klasse:

    private DataTable channelList = new DataTable();
            public DataTable ChannelList
            { get { return channelList; } set { channelList = value; } }
    

    Dieses Property wird gehandhabt, als gäbe es 2 parallel laufende. Je nachdem auf welche Art und Weise darauf zugegriffen wird, rückt das andere in den Vordergrund.



  • Ich hatte tatsächlich die Klasse 2 mal instanziert und sie dadurch parallel, samt ihren Funktionen und Properties, nebeneinander laufen lassen.

    Also denn, trotzdem danke an alle die sich wenigstens kurz darüber den Kopf zerbrochen haben. 🙂

    this.close()
    

Anmelden zum Antworten