I have a TreeView where I display items bound via the TreeViews HierarchicalDataTemplate.ItemsSource
. The context-menu of the TreeView changes based on which item is selected. The menu-items depend on the selected item. This means: the context-menu is built completely dynamic. For this purpose I wrote a MenuItemModel
class, that serves as the business-object for a menu item. Like this:
public class MenuItemModel : ViewModelBase
{
public string Header { get; set; }
public string Icon { get; set; }
public ObservableCollection<MenuItemModel> ChildItems { get; set; }
public UiCommand Command { get; set; }
}
So far so good. But now I have two questions:
Question 1 How can I display a separator in the menu? I have another class SeparatorMenuItemModel
that I planned to use for separators. But in that case my ContextMenu needs to contain a Separator
and not a MenuItem
. How can I do that?
Question 2 I tried to use a DataTemplate
to customize how my MenuItems are displayed. But that does not change the menu itself, just the content-part. I'd have to use a ControlTemplate
for that, but how can I make my Menu change ControlTemplate
the way I could do with DataTemplate
?
Aucun commentaire:
Enregistrer un commentaire