Hi!
I have a button where I want a context menu to appear. But for some reason I can't get the databinding correct. To figure this out, I created a small sample project:
Here is the ViewModel
And here is the xaml:Code:namespace WpfApplication1.ViewModel { public class Person { public string Name { get; set; } public int Age { get; set; } } public class WpfViewModel { public IEnumerable<Person> PersonList { get { var li = new List<Person>() { new Person(){Name="Kalle", Age=12}, new Person(){Name="Nisse", Age=14}, new Person(){Name="Stina", Age=33} }; return li; } } } }
I have tried various ways to get the items to appear in the context menu:Code:<Window x:Class="WpfApplication1.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:n="clr-namespace:WpfApplication1.ViewModel" Title="MainWindow" Height="350" Width="525"> <Window.DataContext> <n:WpfViewModel /> </Window.DataContext> <Grid HorizontalAlignment="Center" VerticalAlignment="Center"> <Button Width="60" Height="30" Content="Click me"> <Button.ContextMenu> <ContextMenu ItemsSource="{Binding PersonList}" DataContext="{Binding}"> <MenuItem Header="{Binding Name}"></MenuItem> </ContextMenu> </Button.ContextMenu> </Button> </Grid> </Window>
* Set datacontext explicitly on the ContextMenu
* removed the DataContext property on the Context Menu
* Used the Path overload on the binding method
How can I make the above code work properly showing the different Persons names?
/S


Reply With Quote