private ContextMenu ConstructContextMenu(ModellingTreeNode node)
        {
            System.Windows.Controls.ContextMenu menu = new ContextMenu();

            Action <string, EventHandler> AddItem = (str, handler) =>
            {
                MenuItem item = new MenuItem();
                item.Header = str;
                item.Click += new RoutedEventHandler(handler);
                menu.Items.Add(item);
            };

            AddItem("Rename", node.ContextMenuRename);
            AddItem("Remove", node.ContextMenuRemove);

            if (node is ModellingTreeNodeProject)
            {
                AddItem("New Grid", (node as ModellingTreeNodeProject).ContextMenuNewGrid);
            }

            if (node is ModellingTreeNodeGrid)
            {
                AddItem("New Fissure", (node as ModellingTreeNodeGrid).ContextMenuAddNewFissure);
                AddItem("Import", (node as ModellingTreeNodeGrid).ContextMenuImport);
            }

            return(menu);
        }
 private void SelectItem(object sender, EventArgs args)
 {
     if (args is RoutedPropertyChangedEventArgs <object> )
     {
         if ((args as RoutedPropertyChangedEventArgs <object>).NewValue != null)
         {
             string            name = (string)(((args as RoutedPropertyChangedEventArgs <object>).NewValue) as TreeViewItem).Header;
             ModellingTreeNode node = treeController.FindModellingTreeNode(name);
             if ((node != null) & (treeController.ActiveNode != node))
             {
                 treeController.ActiveNode = node;
             }
         }
     }
 }
 private void MainMenuFileNewProject(object sender, RoutedEventArgs args)
 {
     string            name         = treeController.ExistedModellingTreeNodeName("Project");
     ModellingTreeNode nodeProjectA = treeController.AddNewProject(name);
 }