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)

0 ответов

Другие вопросы по тегам