Создастся сам.Все, что вам нужно, предоставить ItemTemplate
, в котором вы решите, что показывать и как показывать в каждом MenuItem
.В противном случае реализация по умолчанию вызовет метод ToString()
для каждого элемента в Owners
и отобразит его в MenuItem
.
<ContextMenu ItemsSource="{Binding Owners}">
<ContextMenu.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Title}"/>
</DataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
Здесь я предположил, что тип владельца имеет имя свойстваTitle
.Например, если Owners
равно ObservableCollection<Owner>
, то Owner
определяется как:
public class Owner
{
public string Title { get; set;}
//...
}
Это основная идея о том, как использовать ItemTemplate
.Теперь, если вы хотите использовать подменю в контекстном меню, вы должны использовать HierarchicalDataTemplate
вместо DataTemplate
в определении ItemTemplate
.