0

これは私のビューモデルです:

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のプロパティを備えていますか?

アップデート

したがって、解決策はうまく機能しますが、問題は1つだけです。

<Menu.ItemContainerStyle>
    <Style TargetType="{x:Type MenuItem}">
         <Setter Property="Command" Value="{Binding Command}"/>
    </Style>
</Menu.ItemContainerStyle>

Styleは使用していますが、これを使用することはできませんMenu.ItemContainerStyle

どうすればこれを解決できますか? Menus(これで使用する別のいくつかの異なるものがあることに注意してください。ただし、これにはこれStyleだけが必要です)CommandMenu

4

0 に答える 0