Announcement

Collapse
No announcement yet.

Databinding mit Klassen die weitere Klassen enthalten

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Databinding mit Klassen die weitere Klassen enthalten

    Folgendes Szenario:

    Code:
    public class A 
    { 
      public String FieldA; 
    } 
    
    public class B 
    { 
      public A a; 
      public String FieldB; 
    } 
    
    public class C 
    { 
      public B b; 
      public String FieldC; 
    }
    Wenn ich nun versuche Klasse C an ein Gitter zu binden, kann ich mir dort nur FieldC anzeigen lassen, da er ja nicht weiss was mit B anfangen soll.

    Natürlich könnte man in class B noch ToString() überschreiben, allerdings hilft das auch nicht weiter, wenn class B mehr als 1 Field enthält.

    Eine weiter Möglichkeit wäre noch diese:
    Code:
    puglic class C 
    { 
      public B b; 
      public String FieldC; 
    
      public String bValue { get { return b.FieldB; } set { b.FieldB = value; } } 
      public String aValue { get { return b.a.FieldA; } set { b.a.FieldA = value; } } 
    }
    Aber dass das keine tolle Lösung ist erkennt man auf den ersten Blick.

    Hat jemand hier Erfahrung wie man mit sowas am Besten umgeht? Oder gibt es vielleicht ein Framework was mir analog zur Datenbank ein View aus mehreren Objekten baut?

    Ich hoffe hier kann mir jemand helfen. Das alles händisch zusammen zu basteln kann ja auch nicht der Weisheit letzter Schluss sein.

    Vielen Dank schon mal!!!

    Gruß
    fanderlf

  • #2
    Was meinst Du mit Gitter? Eine DataGridView?

    Comment


    • #3
      z.B. ein DataGridView... ja...

      aber die Anzeigekomponente ist ja eigentlich egal. Die Daten könnten z.B. auch auf verschiedene Textboxen verteilt werden.
      Es geht mir nur darum wie man diese Objekte quasi "platt" drückt. In einer Datenbank kann ich mir zwischen mehreren Tabellen Views machen, die dann genau die Daten in einer Verbindung anzeigen die ich gerne hätte.

      Das Analoge Datenbankbeispiel wäre dann:

      Code:
      SELECT a.FieldA, b.FieldB, c.FieldC
      FROM tabelleA a, tabelleB b, tabelleC c
      WHERE a.Id_tabelleA = b.Id_tabelleA
      AND b.Id_tabelleB = c.Id_tabelleB
      Dieser Code gibt mir genau die 3 Werte aus den einzelnen Tabellen die ich sehen möchte.

      Natürlich könnte man sich für Objekte auch ViewObjekte basteln und diese dann an das Gitter binden.

      Code:
      class ViewC
      {
        private C c;
        public ViewC(C c)
        {
          this.c = c;
        }
      
        public String cFieldC { get { return c.FieldC; } set { c.FieldC = value; } }
        public String bFieldB { get { return b.FieldB; } set { b.FieldB = value; } }
        public String aFieldA { get { return b.a.FieldA; } set { b.a.FieldA = value; } }
      }
      Wahrscheinlich ist das die vernünftigste Lösung. Aber mein Gedanke war, dass ich mal nachfrage wie andere Leute mit diesem Problem umgehen.

      Zum Hintergrund:

      Ich arbeite NHibernate um auf meine Daten in der Datenbank zuzugreifen. Im Programm habe ich dann "nur" Objekte zur Verfügung und diese möchte dann per Databinding an visuelle Komponenten binden.

      Comment

      Working...
      X