これは私のビューモデルです:
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
だけが必要です)Command
Menu