Это моя 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
)