2016-06-18 3 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
    • 다음 하위 메뉴
    • SubMenu2

MenuItem3의 ItemsSource 세트가 있습니다.

관련 문제