private void MenuClick(string pageId)
{
IPage page;
var menu = new ContextMenuStrip();
if (!_pageMap.TryGetValue(pageId, out page))
return;
foreach (var item in ContextMenuItems)
{
var useItem = item; // for use in Click action (reference to loop variable has unpredictable results)
var menuItem = new ToolStripMenuItem(item.Label);
menuItem.Click += (sender, args) => useItem.ExecuteCommand(page);
menuItem.Enabled = item.EnableFunction(page);
menu.Items.Add(menuItem);
}
menu.Show(MousePosition);
}