绑定到IsSubmenuOpen时子菜单不显示

时间:2014-06-04 18:31:49

标签: c# wpf xaml menuitem

我试图展示一个SubMenu项目。每次IsSubmenuOpen设置为true时,我都会在视图模型中调用以刷新MenuItem绑定的列表。

不幸的是,这里没有说明这一点(即使Windows有3个子项目):

enter image description here

查看型号:

public ObservableCollection<Item> CustomLayoutList { get; set; } 
public bool LayoutOptionsOpen { set { UpdateCustomLayoutList(); } }

private void UpdateCustomLayoutList()
{
    CustomLayoutList.Clear();

    var items = GetItems();
    foreach(var item in items)
    {
        CustomLayoutList.Add(item);
    }
}

在Xaml中绑定:

<MenuItem ItemsSource="{Binding CustomLayoutList }" IsSubmenuOpen="{Binding LayoutOptionsOpen, Mode=OneWayToSource}"></MenuItem>

编辑:显然在我的电脑上这很好用。该列表正确填充并显示SubMenu。然而,对于其他一些人来说,SubMenu不会打开 - 尽管验证列表中有项目。

要解决此问题,我更改了我的解决方案以收听SubMenuOpen事件,并在我的xaml.cs代码隐藏中直接调用UpdateCustomLayoutList。这有效,但为什么我的初始解决方案不起作用,是否有更好的方法来解决这个问题?最终我想要零代码。

0 个答案:

没有答案