我认为您需要创建一个新的类ItemViewModel,它将包含相应的TestResults和SummaryText作为您可以绑定到的属性。然后你就可以创建一个ItemViewModels的IEnumerable并绑定你的ListView(或者你想要的任何东西)。我也建议
Grid of TestResults
希望这有帮助!简要描述-如果我的解释不够清楚,请留言。
升级版:
public class ItemViewModel
{
public IEnumerable<string> TestResults { get; set; }
public string SummaryText { get; set; }
}
...
var viewModels = testResults.Select(tr =>
new ItemViewModel() {
TestResults = testResults.Where(t => t.TestGroup == tr.TestGroup)
.Select(t => t.TestName + " " + t.TestPassed),
SummaryText = testSummaries.First(ts => ts.TestGroup == tr.TestGroup)
});
升级版2:
这个XAML应该可以做到这一点:
<!-- In your resources -->
<DataTemplate x:Key="ItemViewModelTemplate">
<StackPanel Orientation="Horizontal">
<ListView ItemsSource={Binding TestResults} />
<TextBlock Text={Binding SummaryText} />
</StackPanel>
</DataTemplate>
...
<!-- In your main xaml file -->
<!-- Let's assume that your main VM contains property ViewModels
that is filled like described above -->
<ListView ItemsSource={Binding ViewModels}
ItemTemplate="{StaticResource ItemViewModelTemplate}" />