private void InsertMenuItemsToMenuTree(IDropInfo dropInfo, List <MenuTreeNodeViewModel> SourceMenuItems, MenuTreeNodeViewModel TargetMenuItem, ObservableCollection <MenuTreeNodeViewModel> Targets)
        {
            List <MenuTreeNodeViewModel> InsertItems = new List <MenuTreeNodeViewModel>();

            foreach (var SourceItem in SourceMenuItems)
            {
                foreach (var Node in RegistedMenuTreeNodes)
                {
                    RemoveMenuNodeReclusive(Node, SourceItem);
                }
                RegistedMenuTreeNodes.Remove(SourceItem);
                InsertItems.Add(SourceItem);
            }
            if (InsertItems.Count > 0)
            {
                if (dropInfo.InsertIndex >= Targets.Count)
                {
                    foreach (var InsertItem in InsertItems)
                    {
                        Targets.Add(InsertItem);
                    }
                }
                else
                {
                    foreach (var InsertItem in InsertItems.Select((item, index) => new { item, index }))
                    {
                        Targets.Insert(dropInfo.InsertIndex + InsertItem.index, InsertItem.item);
                    }
                }
            }
        }
        private void AddMenuItemsToMenuTree(IDropInfo dropInfo, List <MenuTreeNodeViewModel> SourceMenuItems, MenuTreeNodeViewModel TargetMenuItem, ObservableCollection <MenuTreeNodeViewModel> Targets)
        {
            foreach (var SourceItem in SourceMenuItems)
            {
                foreach (var Node in RegistedMenuTreeNodes)
                {
                    RemoveMenuNodeReclusive(Node, SourceItem);
                }
                RegistedMenuTreeNodes.Remove(SourceItem);

                if (TargetMenuItem != null)
                {
                    if (!TargetMenuItem.HasExecutableNode)
                    {
                        TargetMenuItem.Children.Add(SourceItem);
                    }
                }
                else
                {
                    RegistedMenuTreeNodes.Add(SourceItem);
                }
            }
        }