xamlでコンテキストメニューが「ハードコード」されている場合、サブメニューを追加するのは簡単です。例えば:コンテキストメニューのWPFサブメニュー
<ContextMenu>
<MenuItem Header="Comm1" Command="{Binding Blabla1}">
<MenuItem Header="SubComm1" Command="{Binding Blabla2}"></MenuItem>
</MenuItem>
<MenuItem Command="Comm2"></MenuItem>
<MenuItem Command="Comm3"></MenuItem>
</ContextMenu>
これはのContextMenuは、三つの要素(COMM1、COMM2とCOMM3)を有し、COMM1サブメニューSubComm1を有することを意味します。
私はもう少し柔軟な私のContextMenuをした:
<ContextMenu ItemsSource="{Binding ContextMenuItemsSource}">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding ContextMenuCommandHeader}"></Setter>
<Setter Property="Command" Value="{Binding ContextMenuCommand}"></Setter>
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
基本的に私はのContextMenuにおける任意の数の要素を持つことができ、かつ任意の要素は、任意のコマンドを持つことができます。 ContextMenu要素にサブメニューを追加するにはどうしたらいいですか?
ツリーデータ構造をItemsSourceにバインドし、データをMenuItemsに変換するConverterを使用します。 –