这是我的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
)