私はWPF DataGridで動的コンテキストメニューを作成しようとしています。WPFのコンテキストメニューのデータバインド
1)ルートメニューアイテムヘッダーはサブメニューが正常に動作している間はViewModelとバインドされません。
2)サブメニューは、常に右側の代わりに左側にポップアップ表示されます。これをスタイルでどうやって解決できますか?
<DataGrid.ContextMenu>
<ContextMenu ItemsSource="{Binding PackageCM.Members}" HasDropShadow="True" Placement="Right">
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding CategoryName}" />
</Style>
</ContextMenu.ItemContainerStyle>
<ContextMenu.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Items}">
<MenuItem Header="{Binding DisplayName}" Command="{Binding AllPackagesVM.OpenCOBAPackageCommand, Source={StaticResource Locator}}"></MenuItem>
</HierarchicalDataTemplate>
</ContextMenu.ItemTemplate>
</ContextMenu>
Root Menu Item Header are not being bind.
基本的には、コンテキストメニューには、Categoryオブジェクトのリストを持っていると私はコンテキストメニューのルートにカテゴリ名を表示したいとPackageCM.Membersに結合されます。その後、各カテゴリには、サブメニューとして表示されるアイテムのリストが含まれます。
ご協力いただきありがとうございます。
ありがとう、Redouane。それは素晴らしい仕事をしており、ContextMenuが正しく表示されているのがわかりました。さらに、今私はContextMenuがどのようにサブメニューで動作しているのか理解しています。 –