2017-05-21 14 views
0

オブジェクトのコレクションを持つレターと呼ばれるクラスがありますが、アイテムソースをリストボックスにバインドすると、リストビューのデータテンプレート内のコンポーネントオブジェクトがヌルリストボックスデータテンプレートのリストビューをバインドする方法WPF

XAML

<Window.Resources> 
    <DataTemplate x:Key="lstDTGame"> 
     <WrapPanel Height="30"> 
      <TextBlock Text="{Binding Name}"></TextBlock> 
      <ListView></ListView> 
      <ListView ItemsSource="{Binding Path=Component}"> 
       <ListView.View> 
        <GridView AllowsColumnReorder="True" 
           ColumnHeaderToolTip="Employee Information"> 
         <GridViewColumn Header="{Binding Path=Name}" 
             Width="100" 
             DisplayMemberBinding="{Binding Path=Point}" /> 
        </GridView> 
       </ListView.View> 
      </ListView> 
     </WrapPanel> 
    </DataTemplate> 
</Window.Resources> 

クラス

public class Letter 
{ 
    public long ID { get; set; } 
    public string Name { get; set; } 
    public string Value { get; set; } 
    public int Total { get; set; } 
    public ObservableCollection<Component> Components { get; set; } 
} 

答えて

1
  1. あなたは、コンストラクタでそののObservableCollectionを初期化する必要が

    または

    公共のObservableCollectionコンポーネント{取得します。セット; } = 新しいObservableCollection <コンポーネント>();

2.ListViewをComponentでバインドしましたが、ObservableCollection Componentsにバインドする必要があります。

3. DataContextが正しく設定されていることを確認します。

+1

また、LetterクラスにINotifyPropertyChangedを追加し、OnPropertyChangedイベントをComponentコレクションに追加します。 –

+1

私は(2)が主な問題だと思います。典型的な*デバッグ出力ウィンドウでバインディングエラーエントリ*を確認してください。 – grek40

関連する問題