Laden...

DataGrid 2 Dimensionen binden

Erstellt von BeZi vor 9 Jahren Letzter Beitrag vor 9 Jahren 2.110 Views
B
BeZi Themenstarter:in
153 Beiträge seit 2007
vor 9 Jahren
DataGrid 2 Dimensionen binden

Tag an Alle,

ich hoffe mir kann hier geholfen werden. Ich suche schon den halben Tag und finde nichts richtiges.

Ich habe brauche eine Tabelle wie im Anhang....

Ich habe

Als Klasse habe ich aktuell einen Objekt (Person) mit Werten


class Wert
{
 public int Monat{get;set;}
public int Value {get;set;}
}

class Person
{
public string Name{get; set;}
public List<Wert> Werte {get;set}
}

class PersonListe
{
public List<Person> Werte {get;set}

....
....
}


Jetzt habe ich eine Liste von Personen die demensträchend werte haben.

Die Tabelle muss Spalten und Zeilen enthalten. In der erste Spalte sind die Namen der Personen und in den restlichen Spalten sind Monate (wie ich schon sagte siehe Anhang - ein Bild sagt ja meistens mehr als 1000 Worte)

Die Monate sind in diesem Fall fest und nummeriert (von -100 bis 0)... das heisst also nicht an ein Datum gebunden oder ähnliches.... Es könnte genausogut ein Integer sein (naja gut vorlaufend 😁 halt)...

Ich bekomme es leider echt nicht hin das zu binden und bekomme das alles im DataGrid nicht hin (Arggggggg, WO IST NUR DAS GUTE ALTE WINDOWS FORMS DataGridView hin.... ?( - Spaß ich weiss das es das nicht mehr gibt).

Kann mir jemand helfen.... Ich fange gerde erst an WPF (langsam) zu verstehen....

Fettes Merci im Vorraus

M
171 Beiträge seit 2012
vor 9 Jahren

Was ist denn jetzt genau die Frage? Du hast eine Tabelle mit Name- und mehreren Monatsspalten. Und jetzt?

B
BeZi Themenstarter:in
153 Beiträge seit 2007
vor 9 Jahren

Hmmm komisch ich dachte es wäre verständlich 🤔 ????

"Ich bekomme es leider echt nicht hin das zu binden...."

Wie Binde ich meine Klasse(n) an die Tabelle? Und nein ich habe keine Tabelle mit Monatspalten und Namen das ist ein Screenshot aus einem Excelfile den ich schnell erstellt habe....

5.299 Beiträge seit 2008
vor 9 Jahren

Sowas nennt man eine Kreuztabelle, und man kann ein Datagrid nicht an zwei Tabellen binden, dass sich eine Kreuztabelle daraus ergibt (ging übrigens in Winforms auch nicht).

Du musst wohl oder übel eine temporäre Tabelle schaffen, die die beiden Ursprungstabellen kreuzt, und dann so aufgebaut ist, und daran binden.

Der frühe Apfel fängt den Wurm.

B
BeZi Themenstarter:in
153 Beiträge seit 2007
vor 9 Jahren

Ja bei Windows Forms konnte man aber die Splaten Zeilen und Zellen auch direkt anprechen was so wie ich es gelsen habe wohl nicht geht.....

Das kann doch nicht sein... Wenn ich es ohne Binden erstellen will kann ich die Zellen direkt ansprechen Alla DataGridView....

212 Beiträge seit 2008
vor 9 Jahren

JDas kann doch nicht sein... Wenn ich es ohne Binden erstellen will kann ich die Zellen direkt ansprechen Alla DataGridView....

Auch bei WinForms sollte man nicht das Grid ansprechen, sondern immer die Tabelle im "Hintergrund".

Die Rows der Tabelle kann man super gut mit LINQ bearbeiten/suchen. Änderungen werden bei richtigem DataBinding sofort im Grid angezeigt.

Gruß
Christoph

I
256 Beiträge seit 2005
vor 9 Jahren

du musst unter dem Stichwort

"Hierachical databinding" suchen, weil du 2 Dimensionen binden willst .

https://msdn.microsoft.com/en-us/library/ms742521%28v=vs.110%29.aspx unten

Das mit dem direkt anspreche der Zeilen/Spalten, kannst im WPF vergessen

lg

5.299 Beiträge seit 2008
vor 9 Jahren

Das braucht er nicht vergessen.
Es ist nur endlich mal wirklich zwingend erforderlich, ein echtes Viewmodel mit eigener Logik zu erstellen, was wirklich zwischen Daten und Oberfläche geschoben sein muss.

Sonst kann man ja meistt eiglich auch das VM weglassen, oder man hat so komisches VM-Zeug, was nix tut als Werte durchreichen.

Der frühe Apfel fängt den Wurm.