在C#中创建动态嵌套的MenuItem

时间:2016-04-01 17:39:05

标签: c# wpf menuitem

我想知道我是否可以使用C#动态创建嵌套的MenuItem。更准确地说,我有以下代码:

public override List<object> ContextMenu
        {
            get
            {

                var result = new List<object>
                {
                    new MenuItem
                    {
                        Header = "Drive",
                        Command = Drive_Command,
                    }, 
                };

                var message = new ContextMenuBuild<HostVM>(this);
                Messenger.Send(message);
                AddExternalContextMenu(result, message.Items);
                return result;
            }
}

我想要实现的是嵌套的MenuItem,&#34; mySubMenuItem&#34;。使用wpf会是这样的:

<ContextMenu>
            <MenuItem Header="Drive" Command="Drive_Command">
                <MenuItem Header="mySubMenuItem"/>   
            </MenuItem> 
</ContextMenu>

为了能够拥有如下图所示的子菜单:

enter image description here

1 个答案:

答案 0 :(得分:1)

当然可以。

var mi = new MenuItem(){
    Header = "Drive"
};

var subMi = new MenuItem(){
    Header = "mySubMenuItem"
};
mi.Items.Add(subMi);