fixed a bug of SideMenu

This commit is contained in:
NaBian committed 2019-06-03 21:00:57 +08:00
1 parent 7af36ca187
commit 224cc4458b
1 file changed
+35 -2
@@ -141,8 +141,41 @@ namespace HandyControl.Controls
}
else if (mode == ExpandMode.ShowOne)
{
var sideMenuItem = ItemsHost.Children.OfType<SideMenuItem>().FirstOrDefault(item => item.IsSelected);
ShowSelectedOne(sideMenuItem);
SideMenuItem sideMenuItemSelected = null;
foreach (var sideMenuItem in ItemsHost.Children.OfType<SideMenuItem>())
{
if (sideMenuItemSelected != null)
{
sideMenuItem.IsSelected = false;
if (sideMenuItem.ItemsHost != null)
{
foreach (var sideMenuSubItem in sideMenuItem.ItemsHost.Children.OfType<SideMenuItem>())
{
sideMenuSubItem.IsSelected = false;
}
}
}
else if (sideMenuItem.IsSelected)
{
ShowSelectedOne(sideMenuItem);
sideMenuItemSelected = sideMenuItem;
if (sideMenuItem.ItemsHost != null)
{
foreach (var sideMenuSubItem in sideMenuItem.ItemsHost.Children.OfType<SideMenuItem>())
{
if (_selectedItem != null)
{
sideMenuSubItem.IsSelected = false;
}
else if (sideMenuSubItem.IsSelected)
{
_selectedItem = sideMenuSubItem;
}
}
}
}
}
}
}