WPF - чистый XAML для меню с ObservableCollection?
Это моя ViewModel:
public ObservableCollection<Person> Persons;
class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public DateTime DateOfBirth { get; set; }
}
И я хочу создать меню со всем этим Persons
объект из моего List
,
Так в XAML
я просто создаю это:
<Menu Name="menuPersons" DockPanel.Dock="Top" SnapsToDevicePixels="True">
</Menu>
Код позади
MenuItem fileMenuItem = new MenuItem();
fileMenuItem.Header = "Persons";
menuPersons.Items.Add(fileMenuItem);
foreach (Person item in Persons)
{
fileMenuItem.Items.Add(new MenuItem
{
Header = item.FirstName,
});
}
Но, как вы можете видеть, это выглядит ужасно, поэтому мой вопрос чист XAML
способ сделать это и bind
все мое object
со всеми его свойствами?
Обновить
Таким образом, решение работает хорошо для меня, но у меня есть только одна проблема:
<Menu.ItemContainerStyle>
<Style TargetType="{x:Type MenuItem}">
<Setter Property="Command" Value="{Binding Command}"/>
</Style>
</Menu.ItemContainerStyle>
я имею Style
что я использую, но я не могу использовать это Menu.ItemContainerStyle
Как я могу решить это? (обратите внимание, что у меня есть еще несколько разных Menus
что я использую с этим Style
но мне нужно только это Command
за это Menu
)