Чистый XAML для меню с ObservableCollection? - PullRequest
0 голосов
/ 05 июля 2018

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...