绑定XAML中的列表列表

时间:2017-12-06 21:04:46

标签: c# wpf xaml mvvm

所以我有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()

任何帮助表示赞赏!

0 个答案:

没有答案