How  to add sub items to "Second Item" dynamically

  • In xaml file
                  <Grid.ContextMenu>
                     <ContextMenu Opened="OnContextMenuOpened"> // Initialize context menu event
                        <MenuItem Header="First Item" Click="OnClickFirstItem"/>
                        <MenuItem Header="Second Item" />
                     </ContextMenu>

                  </Grid.ContextMenu>

  • In xaml.cs file
private void OnContextMenuOpened(object sender, RoutedEventArgs e)
      {
         try
         {
            ContextMenu menu = sender as ContextMenu;
            if (menu != null)
            {
               foreach (MenuItem item in menu.Items)
               {
                  if (item.Header == null)
                     continue;


                  if (item.Header.ToString() == "Second Item")
                  {
                     item.Items.Clear();

                     foreach (string strHeader in stringArray)
                     {
                        MenuItem item= new MenuItem();
                        item.Header = strHeader;
                        item.Click += new RoutedEventHandler(OnClickItem);
                        item.Items.Add(item);
                     }
                  }
               }
            }
         }
         catch (System.Exception ex)
         {
            System.Diagnostics.Debug.WriteLine(ex.ToString());
         }
      }

posted on 2013-02-16 18:51  chuwachen  阅读(120)  评论(0)    收藏  举报