I’ve got a MenuItem whos ItemsSource is databound to a simple list of strings, its showing correctly, but I’m struggling to see how I can handle click events for them!
Here’s a simple app that demonstrates it:
<Window x:Class='WPFDataBoundMenu.Window1' xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' Title='Window1' Height='300' Width='300'> <Grid> <Menu> <MenuItem Header='File' Click='MenuItem_Click' /> <MenuItem Header='My Items' ItemsSource='{Binding Path=MyMenuItems}' /> </Menu> </Grid>
using System.Collections.Generic; using System.Windows; namespace WPFDataBoundMenu { /// <summary> /// Interaction logic for Window1.xaml /// </summary> public partial class Window1 : Window { public List<string> MyMenuItems { get; set;} public Window1() { InitializeComponent(); MyMenuItems = new List<string> { 'Item 1', 'Item 2', 'Item 3' }; DataContext = this; } private void MenuItem_Click(object sender, RoutedEventArgs e) { MessageBox.Show('how do i handle the other clicks?!'); } } }
Many thanks!
Chris.
Code behind..
Events will bubble up to the common handler. You can then use the Header text or better the DataContext property to switch and act as needed