我需要一个基于列表的其他项目的上下文菜单。
目前,我是通过循环浏览列表并添加这样的项目来做到这一点:
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中执行此操作?
您必须将所有内容都放在集合中,并将该集合设置为ContextMenu
的ItemsSource
。您不能仅设置一半的菜单。虽然您可以使用嵌套菜单,您可以为其设置ItemsSource
。
例如,您可以:
- menuitem1
- menuitem2
- menuitem3
- submenu1
- submenu2
menuitem3的ItemsSource
集。