Browse Source

Don't assume Items are MenuItems.

They may be created via `DataTemplate`s.
Steven Kirk 7 years ago
parent
commit
ca34bf9aba
1 changed files with 3 additions and 6 deletions
  1. 3 6
      src/Avalonia.Controls/MenuItem.cs

+ 3 - 6
src/Avalonia.Controls/MenuItem.cs

@@ -342,7 +342,7 @@ namespace Avalonia.Controls
 
             if (menuItem != null && menuItem.Parent == this)
             {
-                foreach (var child in Items.OfType<MenuItem>())
+                foreach (var child in ((IMenuItem)this).SubItems)
                 {
                     if (child != menuItem && child.IsSubMenuOpen)
                     {
@@ -368,12 +368,9 @@ namespace Avalonia.Controls
         /// </summary>
         private void CloseSubmenus()
         {
-            if (Items != null)
+            foreach (var child in ((IMenuItem)this).SubItems)
             {
-                foreach (var child in Items.OfType<MenuItem>())
-                {
-                    child.IsSubMenuOpen = false;
-                }
+                child.IsSubMenuOpen = false;
             }
         }