HandyOrg / HandyControl

Contains some simple and commonly used WPF controls
https://handyorg.github.io/
MIT License
6.01k stars 1.02k forks source link

hc:SideMenu侧边菜单通过代码修改选中项,无法触发鼠标的事件怎么办? #1634

Open realyw opened 1 month ago

realyw commented 1 month ago

Feature request type

enhancement

Is your feature request related to a problem? Please describe

我想通过点击一个按钮而不是菜单进行修改侧边菜单的选中状态,代码中sideMenuItem.IsSelected = true;修改后,无法触发sideMenuItem中受保护的OnSelected方法,导致我再次点击原先菜单项发现选中状态同时出现两个选中的。

Describe the solution you'd like

我想从某个页面中的按钮点击,然后修改菜单选中状态,如何实现呢?

Describe alternatives you've considered

No response

Additional context

///

/// 更新菜单选中状态 /// /// private void UpdateSideMenuSelected(SideMenuMessage message) { foreach (var item in SideMenu.Items) { if (item is SideMenuItem sideMenuItem) { if (sideMenuItem.Tag != null && message.MenuItemTag != null) { if (sideMenuItem.Tag.ToString() == message.MenuItemTag) { sideMenuItem.IsSelected = true; } }

        if (sideMenuItem.HasItems)
        {
            foreach (var subItem in sideMenuItem.Items)
            {
                if (subItem is SideMenuItem subSideMenuItem)
                {
                    if (subSideMenuItem.Tag != null && message.MenuItemTag != null)
                    {
                        if (subSideMenuItem.Tag.ToString() == message.MenuItemTag)
                        {
                            sideMenuItem.IsSelected = true;
                        }
                    }
                }
            }
        }
    }
}

}