Exemplo n.º 1
0
        public static MenuItem Create(ItemsControl parent, string itemName, string inputGestureText = "")
        {
            MenuItem result      = null;
            var      hierarchies = itemName.Split(Path.DirectorySeparatorChar);

            if (hierarchies.Length > 1)
            {
                if (parent != null)
                {
                    for (int i = 0; i < hierarchies.Length - 1; i++)
                    {
                        var existsParent = parent.Find(hierarchies[i]) as ItemsControl;
                        if (existsParent != null)
                        {
                            parent = existsParent;
                        }
                        else
                        {
                            parent = parent.AddMenuItem(hierarchies[i]);
                        }
                    }
                    result = new MenuItem()
                    {
                        Header = hierarchies[hierarchies.Length - 1]
                    };
                    parent.Items.Add(result);
                }
                else
                {
                    result = Create(new MenuItem()
                    {
                        Header = hierarchies[0]
                    },
                                    itemName.Substring(itemName.IndexOf(Path.DirectorySeparatorChar) + 1),
                                    inputGestureText);
                    parent.Items.Add(result);
                }
            }
            else
            {
                result = new MenuItem()
                {
                    Header = itemName, InputGestureText = inputGestureText
                };
                if (parent != null)
                {
                    parent.Items.Add(result);
                }
            }
            return(result);
        }