[C#] Datenaustausch 2er Fenster

Gary94

Freizeitschrauber(in)
Hallo!

Hab mal kurz eine Frage.
Es gibt ja verschiedene Möglichkeiten Daten von einem Fenster in das andere zu übertragen.
Eine ist ja den Wert beim Aufruf per Parameter mitzugeben, also z.B.: Window win = new Window(var)

Aber die Lösung find ich irgendwie unpraktisch, hab da mal irgendwas von "static" gehört, wisst ihr da vielleicht weiter und könnt mir das erklären wie das funktioniert? Ich finde darüber irgendwie nicht wirklich was.
Das ganze übrigens mit WPF.

Vielen Dank!

MfG, Gary
 
Joa, static und public-Member wären so die Variante, wenn es schnell gehen sollte.

Wäre dann in etwa so (keine Ahnung, wie genau das jetzt WPF trifft^^)
Code:
class DATENCONTAINER //irgendwo mit hintun oder die Daten als static irgendwo in eine andere Klasse packen
{
     public [B]static [/B]int DATA_0;
     public [B]static [/B]int DATA_1;
}

// im Programmfluss von einem Fenster dann:
...
    DATENCONTAINER.DATA_0 = 1 //schreiben

// woanders dann z.B.:
...
     int myInt = DATENCONTAINER.DATA_0; //lesen
Eleganter wäre es dann mit einer eigenen Datenkontainer-Klasse, die nicht statisch ist und z.B. im Konstruktor an alle Instanzen übergeben wird, die Daten austauschen sollen:
Code:
class DATENCONTAINER //fast wie oben, nur nicht statisch
{
     public int DATA_0;
     public int DATA_1;
}

class Window
{
     [B]private DATENCONTAINER datentauscher;[/B] // nur zugreifbar für ausgewählte Instanzen

     public Window([B]DATENCONTAINER _dtauscher[/B])
     {
          this.datentauscher = _dtauscher;
          // und berets jetzt kannst du in dieser Klasse immer per 
          [B]datentauscher.[MEMBER][/B]
          // die Daten im Container bearbeiten. Die Änderungen bekommen auch alle anderen Instanzen mit
     }
}

// für Instanziierung dann:
...
     DATENCONTAINER tauscher = new DATENCONTAINER();
     Window win = new Window(tauscher);
     Window win2 = new Window(tauscher);
     // usw.
 
Die letztere Variante mit der separaten Datenklasse ist die zu bevorzugende. Du kannst das Alternativ auch als Property machen, wenn du das zur Laufzeit ändern willst.
 
Zurück