2016-05-21 15 views
1

PlayerとScorecardの2つのクラスがあります。 Scorecardには多数のプロパティがあり、Playerにはプロパティがあり、そのうちの1つはScorecardオブジェクトです。私は次に選手の配列を持っています。最初の列のPlayer's Nameプロパティを持つ各行にプレーヤーを表示するにはWPF Datagridをセットアップしますが、他の行のPlayerのScorecardオブジェクトのプロパティは表示するにはどうすればよいですか?ここでオブジェクトプロパティ内のオブジェクトをWPF Datagridにバインドする

はクラス...

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; 
    } 

、これは私が達成するために望んでいるものですされている(ASCIIグラフィックを言い訳、私は画像を投稿するのに十分な評判ポイントを持っていません!).. 。

| Name | Horses | Sheep | Cows | 
| Pete | 12  | 2  | 4  | 
| Lucy | 2  | 8  | 14 | 

私が検索したところ、正しい解決策は見つかりませんでした。以下のコードは私に最初の列を取得しますが、それは私がうまくいかない関連Scorecardオブジェクトに掘り下げています。

 var col = new DataGridTextColumn(); 
     var binding = new Binding("Name"); 
     col.Binding = binding; 
     dgScoreGrid.Columns.Add(col); 
     dgScoreGrid.ItemsSource = playerArray; 

答えて

0

第一のものは、スコアカードプロパティ(ないフィールド

// Parameters 
// ... 
public Scorecard Scorecard { get; } 

Binding Path Syntaxに応じて、プロパティのサブプロパティは、C#と同様の構文で指定することができるよりも作ることです。

+0

多くのおかげで、そのトリックが行われました。私は実際にその構文を試してみましたが、フィールドではなくプロパティにのみ適用されることに気づいていませんでした。 –

関連する問題