2017-12-27 14 views
-1

私は自分でWPFを学習しています。 ロゴとタイトルを使用してゲームのリストを作成しようとしています。 私はいくつかのWPFチュートリアルで見たことに成功しました。私のテンプレートは空白行のみを表示します。私のマウスがアイテムの上にあるのに何も表示されていないとき、すべての要素が正しい高さであることがわかります。C#WPF ListViewテンプレートで何も描画されていません

myListView.ItemsSourceがmy databaseに設定されています。私はこの時点でモデルを正しく受け取っていますが、私が言ったように、何もレンダリングされていません

誰かが私のコードに間違っていることを教えてもらえますか?

ここに私のWPF:

<ListView x:Name="ListGames" Margin="0,57,0,30" Background="#111" BorderThickness="0" ItemsSource="{Binding Path=Game}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Height="200" Orientation="Horizontal"> 
        <StackPanel.Background> 
         <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0"> 
          <GradientStop Color="Black" Offset="0"/> 
          <GradientStop Color="#333" Offset="1"/> 
         </LinearGradientBrush> 
        </StackPanel.Background> 
        <Image MaxWidth="800" Height="175" Stretch="Fill" Source="{Binding Path=logoPath}"/> 
        <TextBlock Foreground="#ddd" Text="{Binding Path=Title}" /> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

ここに私のゲームクラス:

class Game 
{ 
    public Int32 id; 
    public string title; 
    public string type; 
    public string description; 
    public string logoPath; 

    public Game(Int32 a_id, string a_title, string a_type, string a_description, string a_logoPath) 
    { 
    id = a_id; 
    title = a_title; 
    type = a_type; 
    description = a_description; 
    logoPath = a_logoPath; 
    } 
} 

答えて

1

まず、あなたがフィールドにバインドすることはできません。フィールドをプロパティに変更する必要があります。

public string logoPath { get; set; } 

第2に、バインディングは大文字と小文字を区別します。

Text="{Binding Path=title}" 

第三:あなたはC#の命名規則が気に入らない場合は、少なくとも一貫して独自の規則に従う必要があり、私はこれを解析することができますが、私はそれを解釈することはできません。

MyListViewを.ItemsSourceが自分のデータベースに設定されています。私はこの時点でモデルを正しく受け取っていますが、私が言ったように、何も描画されていません。

リストビューに行がありますかどうか?

+0

これは、ListViewまたはその親のDataContextがGameプロパティへの参照を保持するように設定されていない限り、動作しません。右? –

+1

@AndréBRight。 OPがそれをしているかどうかは明らかではない。私は彼がいるという信念に傾いています。そうでなければ、コードでコードを割り当てていて、XAMLのバインディングはノブのノーオペレーションです。 –

+0

私はいつも後者を試してみる傾向があります! 簡単な質問ですが、ListViewなど、マークアップ内のコントロールのItemsSourceプロパティを設定するたびにDataContextを設定する必要があるのはなぜですか? –

関連する問題