所以我有Authors
的列表。这些Authors
中的每一个都有一个Books
列表。从Authors
的这个列表中,我想为每个作者显示所有的书籍作为数据绑定。我想通过XAML完全实现这一点,因为我不相信我应该采用代码隐藏来解决纯粹的UI问题(数据已经全部可用了。)。
我最接近的是使用嵌套的ListViews,首先遍历我的作者列表(属于一个对象; SelectedBookshop),然后循环遍历所有书籍:
<ListView ItemsSource="{Binding SelectedBookshop.Authors}">
<ListView.ItemTemplate>
<DataTemplate>
<ListView ItemsSource="{Binding Books}">
<ListView.View>
<GridView>
<GridViewColumn Header="Book Name" DisplayMemberBinding="{Binding Name}"/>
</GridView>
</ListView.View>
</ListView>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
这将显示所有书籍,但会为每位作者显示单独的ListView!
为了进一步使问题复杂化,最好从这个内部ListView中的Author
对象访问字段,我无法找到使用此方法的解决方案。
代码隐藏解决方案将是:
MyListView.ItemsSource = ((SelectedBookshop
.SelectMany(b => b.Authors))
.SelectMany(a => a.Books)).ToList()
任何帮助表示赞赏!