2クラスあります。1 つは、2 番目のクラスのリストをプロパティとして含む親です。2 番目のクラスにもリストがあります。
問題は、アプリケーションが 2 番目のクラス内でリストをバインドしないことです。
アプリケーションは、(親クラスの) 2 番目のクラス リストからバインドするグリッドのリストを表示し、各グリッドは 2 番目のクラス内のリストからの情報を表示します。
各グリッドは値をバインドしません
Class Parent{
public List<NestedClass> Child { get; set; }
.
.
.
}
Class NestedClass{
public ObservableCollection<SomeParameter> Params{ get; set; }
public string Name
{
get
{
return "Hello world";
}
}
.
.
.
}
以下のようなxaml。
<ItemsControl HorizontalContentAlignment="Stretch" ItemsSource ="{Binding Child}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<ItemsControl ItemsSource="{Binding Child.Params}" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="80"/>
<ColumnDefinition Width="80"/>
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBlock Text="{Binding Count}" />
</Grid>
<Grid Grid.Column="1"></Grid>
<Grid Grid.Column="2"></Grid>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
出力ウィンドウは次のように表示されます
System.Windows.Data エラー: 40: BindingExpression パス エラー: 'Params' プロパティが 'object' ''NestedClass' (HashCode=16626097)' に見つかりません。BindingExpression:Path=Params; DataItem='NestedClass' (HashCode=16626097); ターゲット要素は 'ItemsControl' (Name='') です。ターゲット プロパティは 'ItemsSource' (タイプ 'IEnumerable') です。
編集#1 xamlを追加
編集#2出力メッセージを追加
編集#3 NestedClass に name プロパティを追加