1

我知道如何使用 C# 中的代码在 xaml 中创建上下文菜单。我找不到的是如何拥有一个菜单项,单击该菜单项将显示一个列表,列表中的每个项目都是指向其他网站的超链接。任何帮助将不胜感激。谢谢!

4

1 回答 1

2

这就是您可以完全通过 MVVM 实现此目的的方式。

XAML:

    <DataTemplate x:Key="SubMenuItemTemplate">
        <ContentControl>
            <Hyperlink>
                <TextBlock Text="{Binding}"/> //Here you can bind to your site address property
            </Hyperlink>
        </ContentControl>
    </DataTemplate>

    <Style x:Key="MenuItemStyle" TargetType="{x:Type MenuItem}">
        <Setter Property="ItemsSource" Value="{Binding SubMenuItems}"/>
        <Setter Property="ItemTemplate" Value="{StaticResource SubMenuItemTemplate}"/>
    </Style>

    <ContextMenu x:Key="myContextMenu" ItemsSource="{Binding ContextMenuItems}" DisplayMemberPath="Name" ItemContainerStyle="{StaticResource MenuItemStyle}"> 

您可以将ContextMenu任何控件的属性设置为 myContextMenu 以使用它。C# 类

public class ContextMenuItem
{
    public string Name
    { get; set; }

    public List<String> SubMenuItems
    { get; set; }
}

ViewModel 可以具有属性 ContextMenuItems,即 ContextMenuItems 的集合。

希望这会有所帮助

谢谢

于 2013-08-29T18:49:09.503 回答