2016-06-18 18 views
0

リストに基づいて追加項目を含むコンテキストメニューが必要です。現在、私はリストをループして、このような項目を追加することで、これを
をやってる:バインドを使用して追加のコンテキストメニュー項目を作成する

var MyItemsList = new List<string>{ 
"item1" 
"item2" 
}; 
myContextMenu.Items.Clear(); 
foreach (var item in MyItemsList) 
{ 
    var menuItem = new MenuItem(); 
    menuItem.Header = item; 
    menuItem.Click += (sender, args) => HandleItem(item); 
    myContextMenu.Items.Add(menuItem); 
} 
myContextMenu.Add(new MenuItem {Header = "Static item"}); //etc, etc 

は、どのように私はバインディングを使用してXAMLでこれを行うことができますか?

+0

あなたはこのような必要なものを実現できます。必要に応じて、すべてのメニュー項目を配置して、可視性をプロパティにバインドして、各項目が必要なときにのみ表示されるようにすることができます。または、ユーザーコントロールをメニューで絞り込み、現在のようなコンテキストメニューに動的に追加します。 – ViVi

答えて

0

コレクションにすべてを入れ、そのコレクションをContextMenuItemsSourceに設定する必要があります。 MenuItemの半分だけItemsSourceを設定することはできません。 ItemsSourceを設定できるネストされたMenuItemsを使用することはできますが。あなたが持つことができる。例えば

  • MenuItem1
  • MenuItem2
  • MenuItem3
    • SubMenu1
    • SubMenu2

MenuItem3のItemsSourceが設定されています。

関連する問題