我在将ListBox绑定到集合中的集合元素时遇到了一些问题。让我解释一下:
我有一个名为ObservableCollection<Test>
的集合testsCollection
。每个测试都包含一个名为ObservableCollection<LogEvent>
的{{1}}。每个LogEvents
都有LogEvent
我需要在ListBox中显示。
我需要在每个“测试”中的每个“LogEvent”中显示每个“消息”。它必须显示在一个平面列表中,所以我使用的是ListBox。
以下是我尝试的内容摘要:
Message
我把它放在XAML中:
DataContext = testCollection; // testCollection is an ObservableCollection<Test>
最后,这是ItemTemplate,stepItemTemplate:
<ListBox ItemsSource="{Binding LogEvents}" ItemTemplate="{StaticResource stepItemTemplate}">
这“工作”,但它只显示第一个测试的LogEvents中的消息。但我需要显示每个测试的每个LogEvent的每个消息..而且我不知道该尝试再做什么:(
答案 0 :(得分:1)
当你想绑定像这样的场景
时,你应该使用Usser ItemsControl<ListBox ItemsSource="{Binding testsCollection}">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding Message}" FontSize="20" />
<ItemsControl ItemsSource="{Binding LogEvents}" Margin="0 20 0 0">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Border BorderBrush="Blue" BorderThickness="2">
<TextBlock Text="{Binding Message}" FontSize="20" />
</Border>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>