在wpf mvvm数据绑定菜单项中添加额外的级别

时间:2018-07-18 15:25:34

标签: wpf mvvm menu contextmenu menuitem

我有一个名为“作者”的菜单项,其菜单项ItemsSource与一个名为ObservableCollection的{​​{1}}绑定。点击作者会打开一个作者姓名列表。我需要做些什么修改才能增加菜单项的级别,简单来说,我希望显示每个作者姓名的书籍清单。

赞:

CollectionOfAuthors

这是我现有的代码:

MainWindow.xaml

Author
 |__AuthorName 1
    |__Book 1
    |__Book 2

MainWindowViewModel.cs

<MenuItem Header="Authors" ItemsSource="{Binding CollectionOfAuthors}">
    <MenuItem.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding AuthorName}" />                                    
        </DataTemplate>
    </MenuItem.ItemTemplate>
</MenuItem>

1 个答案:

答案 0 :(得分:2)

为此使用HierarchicalDataTemplate

<MenuItem Header="Authors" ItemsSource="{Binding CollectionOfAuthors}">
    <MenuItem.ItemTemplate>
        <HierarchicalDataTemplate ItemsSource="{Binding Path=Books}">
            <TextBlock Text="{Binding AuthorName}"/>
            <HierarchicalDataTemplate.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding BookName}"/>
                </DataTemplate>
            </HierarchicalDataTemplate.ItemTemplate>
        </HierarchicalDataTemplate>
    </MenuItem.ItemTemplate>
</MenuItem>
相关问题