独自のコンテキスト メニューを生成して設定し、項目を次のようにサブメニューにグループ化します。
SubTitle.Items.Add(..);
これらのポップアップ サブメニューは正常に動作し、ほとんどすべてが適切です..しかし...
MenuItem ロール (スタイルのトリガーごとに設定できます) を TopLevelHeader などに設定しない限り、サブメニューの三角形を表示できません。
MenuItem.Role には直接のセッターがないため、サブメニューの MenuItems を XAML 静的オブジェクトとして作成し、素敵なスタイルを付与して、サブメニューの三角形も取得する必要があります。
問題は、コンテキスト メニューが DB などから完全にプログラム的に派生していることです。静的な XAML MenuItem を再利用する場合、ガベージ コレクターをそれらに設定して、それらを再利用する前に親関係を壊す必要があります。また、これらの要素を知らなければなりません。あらかじめ。
次の方法はありますか?
MenuItemThatIsTitle.Role = MenuItemRole.TopLevelHeader; 
//(in order to get the triangle?)
..コードから?
===
コード例 - コードからコンテキスト メニューにサブメニューを追加する:
            contextM.Items.Add(new Separator());
            var TitleH = new MenuItem
            {
                    Header = SettingsDomain.Default.TitleHeader,
                    FontWeight = FontWeights.Bold,
                    Height = 25,
                    IsEnabled = true,
            };
            if (!(TitleH.Items.Count > 0))
            //TitleH.Role = MenuItemRole.TopLevelHeader; to get the triangle..
            {
                var listmen = List.Select(c => cMenuItem(c)).ToList();
                TitleH.ItemsSource = listmen;
            }
            contextM.Items.Add(TitleH);
            contextM.Items.Add(new Separator());
注意: 関連する XAML はありません