Ich habe zwei Klassen, Player und Scorecard. Scorecard verfügt über eine Reihe von Eigenschaften. Player verfügt auch über Eigenschaften, von denen eines ein Scorecard-Objekt ist. Ich habe dann eine Reihe von Spielern. Wie richte ich ein WPF-Datagrid ein, um in jeder Zeile einen Player mit der Eigenschaft Player Name in der ersten Spalte, aber die Eigenschaften aus dem Scorecard-Objekt des Players in den anderen Zeilen anzuzeigen?Binding-Objekt innerhalb von Objekteigenschaften in ein WPF DataGrid
Hier sind die Klassen ...
class Scorecard
{
public Scorecard()
{
}
// Properties
public int Horses { get; set; } = -1;
public int Sheep { get; set; } = -1;
public int Cows { get; set; } = -1;
}
class Player
{
public Player(int playerId, string playerName)
{
ID = playerId;
Name = playerName;
Scorecard = new Scorecard();
}
// Parameters
public int ID { get; }
public string Name { get; }
public Scorecard Scorecard;
}
und das ist, was ich hoffe, zu erreichen (die ASCII-Grafiken zu entschuldigen, ich habe nicht genug Ruf Punkte ein Bild zu schreiben!) .. .
| Name | Horses | Sheep | Cows |
| Pete | 12 | 2 | 4 |
| Lucy | 2 | 8 | 14 |
Ich habe gesucht und kann keine Lösung finden, die ganz richtig ist. Der folgende Code ruft die erste Spalte ab, aber es wird in das zugehörige Scorecard-Objekt gegraben, das ich nicht ausarbeiten kann.
var col = new DataGridTextColumn();
var binding = new Binding("Name");
col.Binding = binding;
dgScoreGrid.Columns.Add(col);
dgScoreGrid.ItemsSource = playerArray;
Vielen Dank, das ist der Trick gemacht. Ich hatte diese Syntax tatsächlich ausprobiert, aber ich hatte nicht erkannt, dass sie nur für Eigenschaften gilt, nicht für Felder. –