Unique context menu for different items depending on content.
private ContextMenu CreateContextMenu(ListBoxItem lbi) { ContextMenu contextMenu = new ContextMenu(); ContextMenuService.SetContextMenu(lbi, contextMenu); contextMenu.Padding = new Thickness(0); string item_1 = "item 1"; if(lbi.Content is string) { item_1 = lbi.Content as string; } contextMenu.ItemsSource = new List<string> { item_1, "item 2", "item 3" }; contextMenu.IsOpen = true; return contextMenu; } private void Results_SelectionChanged(object sender, SelectionChangedEventArgs e) { if (Results.SelectedIndex == -1) return; int index = Results.SelectedIndex; ListBoxItem lbi = Results.ItemContainerGenerator.ContainerFromIndex(index) as ListBoxItem; CreateContextMenu(lbi); Results.SelectedIndex = -1; }
source share