WPF ContextMenu ItemTemplate -动态发布

xe55xuns  于 12个月前  发布在  其他
关注(0)|答案(1)|浏览(110)
<ContextMenu x:Key="OverviewListViewSingleSelectionContextMenu">
    <MenuItem Name="ViewPhotosMenuItem" Header="View Photos" Click="ViewPhotosMenuItem_Click"/>
    <Separator/>
    <MenuItem Name="NavigateBackMenuItem" Header="Navigate Back">
        <ItemsControl Name="RecentAthletesItemsControl" ItemsSource="{Binding RecentAthletesContextMenuItems}">                
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <MenuItem Header="{Binding CurrentName.Fullname, Mode=OneWay}" Tag="{Binding .}" Click="RecentAthletesMenuItem_Click"/>
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </MenuItem>
    <Separator/>
    <MenuItem Name="AutoSetAttributesMenuItem" Header="Auto-Set Attributes" Click="AutoSetAttributesMenuItem_Click"/>
</ContextMenu>

字符串
我想在WPF中的上下文菜单中添加一个菜单项(NavigateBackMenuItem)。该菜单项的MenuItem应绑定到一个列表(RecentAthletesContextMenuItem)。
这在总体上工作得很好,但是UI的行为是坏的。我想这是同一个根本原因指出,在这篇文章中
WPF ContextMenu itemtemplate, menuitem inside menuitem
不幸的是,我不能匹配的解决方案,我的问题,因为这并不涉及一个问题。任何帮助是非常欢迎的。

sz81bmfz

sz81bmfz1#

上面代码的问题是,当你打开菜单时,所有菜单项都被标记为蓝色,菜单不对齐。与链接帖子中的问题相同。我找到了一个有效的解决方案

<ContextMenu x:Key="OverviewListViewSingleSelectionContextMenu">
    <MenuItem Name="ViewPhotosMenuItem" Header="View Photos" Click="ViewPhotosMenuItem_Click"/>
    <Separator/>

    <MenuItem Header="Navigate Back" ItemsSource="{Binding RecentAthletesContextMenuItems}">
        <MenuItem.ItemTemplate>
             <HierarchicalDataTemplate DataType="{x:Type dm:DataModel}">
                <TextBlock Text="{Binding CurrentName.ReverseFullname}" MouseDown="RecentAthletesMenuItem_Click" Tag="{Binding .}" />
            </HierarchicalDataTemplate>
        </MenuItem.ItemTemplate>
    </MenuItem>
 </ContextMenu>

字符串

相关问题