小编Jan*_*lli的帖子

WPF - 如何使用绑定创建菜单和子菜单

我正在尝试使用绑定创建动态菜单.我的viewmodel我有一个包含标题和命令的对象列表.但是,它不起作用.我认为问题出在数据模板中.请参阅下面的代码:

<Menu Background="{x:Null}" Grid.Row="0" Grid.Column="1" Panel.ZIndex="2" Width="865" Height="85" HorizontalAlignment="Left" ItemsSource="{Binding Path=MenuItems}">

        <Menu.ItemTemplate>
            <HierarchicalDataTemplate DataType="MenuItemViewModel" ItemsSource="{Binding Path=MenuItems}">
                <MenuItem Header="{Binding Header}" Style="{DynamicResource MenuItemStyle1}" ItemsSource="{Binding Path=MenuItems}" Padding="10,12,10,0" Height="44.1" Margin="30,0,0,0" FontWeight="Bold">
                    <MenuItem.ItemsPanel>
                        <ItemsPanelTemplate>
                            <VirtualizingStackPanel Orientation="Horizontal"/>
                        </ItemsPanelTemplate>
                    </MenuItem.ItemsPanel>
                </MenuItem>
                <HierarchicalDataTemplate.ItemTemplate>
                    <DataTemplate>
                        <MenuItem Header="{Binding Header}" Style="{DynamicResource MenuItemStyle1}" Padding="0,8,0,0" Height="38">
                        </MenuItem>
                    </DataTemplate>
                </HierarchicalDataTemplate.ItemTemplate>
            </HierarchicalDataTemplate>
        </Menu.ItemTemplate>            
    </Menu>
Run Code Online (Sandbox Code Playgroud)

结果仅显示第一个菜单.子菜单没有显示,但它们在那里,因为菜单有子项,箭头在菜单标题后打印.

任何人都可以在绑定上发现错误吗?还是有什么建议吗?

仅供参考,MenuItems是一个MenuItemViewModel对象列表,它有一个标题和一个名为MenuItems的MenuItemViewModel对象(子菜单)列表.

c# wpf binding menuitem

21
推荐指数
1
解决办法
3万
查看次数

标签 统计

binding ×1

c# ×1

menuitem ×1

wpf ×1