alielie
2025-03-26 4cac1b533e133fdc8b3def90a0f998820f51907a
WPFProject/Controls/MainTabControl.xaml.cs
@@ -2,6 +2,7 @@
using HMI.Core.Api;
using Microsoft.DwayneNeed.Interop;
using Panuon.WPF.UI;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Runtime.CompilerServices;
@@ -94,6 +95,7 @@
            }
        }
        private Dictionary<PluginInfo, PluginInfo> selectedCache = new Dictionary<PluginInfo, PluginInfo>();
        private ObservableCollection<PluginInfo> _SubMenuItems;
@@ -138,20 +140,27 @@
            {
                var data = (PluginInfo)e.AddedItems[0];
                SubMenuItems = data?.Children;
            }
        }
        private void SwithMenu(PluginInfo menu)
                if (selectedCache.ContainsKey(data))
        {
                    SelectedSubMenu = selectedCache[data];
        }
                else if (SubMenuItems.Count > 0)
                {
                    SelectedSubMenu = SubMenuItems[0];
                }
            }
        }
        private void SubMenu_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            if (e.AddedItems?.Count > 0)
            {
                var data = (PluginInfo)e.AddedItems[0];
                if (SelectedMenu != null)
                {
                    selectedCache[SelectedMenu] = data;
                }
                var content = data.Content;
                var last = page.Child;
                PluginPackage.Get(last)?.DeActive();
@@ -186,6 +195,11 @@
                UpdateSourceTrigger = UpdateSourceTrigger.PropertyChanged
            };
            winFormHolder.SetBinding(WinFormHolder.MaskVisiableProperty, binding);
            if (MenuItems != null && MenuItems.Count > 0)
            {
                SelectedMenu = MenuItems[0];
            }
            Loaded -= UserControl_Loaded;
        }
    }
}