【发布时间】:2011-08-02 16:48:19
【问题描述】:
我在 wpf 中有一个上下文菜单。菜单中的一项具有从标题菜单项的 ItemsSource 填充的子菜单。此子菜单是可以发送到应用程序其他部分的命令列表。该列表基本上是一个限制为 10 项的 mru 列表。我想在 10 个项目的列表下方添加一个分隔符,然后添加一个“更多”选项,以便用户可以看到可用命令的整个列表。我似乎无法弄清楚如何添加这些额外的项目。我可以从父菜单项的 ItemsSource 动态填充列表,但我似乎无法弄清楚如何将其他项目添加到子菜单的底部。我不想将它们放在项目源中,并且“更多”项目需要有自己的命令。
<MenuItem x:Name="ExecuteCommandMenuItem" Height="22" Style="{StaticResource RightClickMenuItemStyle}"
ItemsSource="{Binding Path=PanelCommands}">
<MenuItem.Header>
<StackPanel Orientation="Horizontal">
<TextBlock Text="Panel Command" HorizontalAlignment="Left" Width="100"/>
</StackPanel>
</MenuItem.Header>
<MenuItem.ItemContainerStyle>
<Style TargetType="MenuItem" BasedOn="{StaticResource RightClickMenuItemStyle}">
<Setter Property="MenuItem.Header" Value="{Binding}" />
<Setter Property="MenuItem.Command" Value="CommonCommands:CommandRepository.ExecutePanelCommand" />
<Setter Property="MenuItem.CommandParameter">
<Setter.Value>
<MultiBinding Converter="{CommonConverter:PanelCommandArgsConverter}">
<MultiBinding.Bindings>
<Binding Path="DataContext" RelativeSource="{RelativeSource FindAncestor,
AncestorType={x:Type ContextMenu}}"/>
<Binding Path="Command" />
</MultiBinding.Bindings>
</MultiBinding>
</Setter.Value>
</Setter>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
谢谢。
【问题讨论】: