通过绑定创建其他上下文菜单项

时间:2016-06-18 03:55:49

标签: c# wpf xaml binding contextmenu

我需要一个上下文菜单,其中包含基于列表的其他项目 目前我通过循环遍历列表并添加如下项目来实现此目的:

var MyItemsList = new List<string>{
 "item1"
 "item2"
};
myContextMenu.Items.Clear();
foreach (var item in MyItemsList)
{
    var menuItem = new MenuItem();
    menuItem.Header = item;
    menuItem.Click += (sender, args) => HandleItem(item);
    myContextMenu.Items.Add(menuItem);
}
myContextMenu.Add(new MenuItem {Header = "Static item"}); //etc, etc

如何使用绑定在XAML中执行此操作?

1 个答案:

答案 0 :(得分:0)

您必须将所有内容放入集合中,并将该集合设置为ItemsSource的{​​{1}}。您不能仅为MenuItem的一半设置ItemsSource。虽然您可以使用嵌套的MenuItems,但可以设置ContextMenu

例如,您可以:

  • MenuItem1
  • MenuItem2
  • MenuItem3
    • SubMenu1
    • SubMenu2

MenuItem3设置了ItemsSource