我正在使用ObjectDataProvider和DataTemplate填充菜单栏中的MenuItem。 (WPF,C#/XAML)请参见下面的代码段。
结果:出现顶部菜单项,当我单击它时,包装菜单项(带有绑定(bind)的标题文本的项)与表示存在子项的小箭头一起出现,但是将鼠标悬停或单击箭头不会显示子项,无法访问它们。
预期结果: children 是可见的并且行为正常。
片段:
<ObjectDataProvider x:Key="Brokers" ObjectInstance="{x:Static brokers:BrokerManager.Instance}" MethodName="GetBrokers" IsAsynchronous="True" />
<DataTemplate x:Key="BrokerMenuItem" DataType="IBroker">
<MenuItem Header="{Binding Path=Name}">
<MenuItem Header="Connect" />
<MenuItem Header="Disconnect" />
</MenuItem>
</DataTemplate>
<MenuItem Header="Brokers" ItemsSource="{Binding Source={StaticResource Brokers}}" ItemTemplate="{DynamicResource BrokerMenuItem}"/>
最佳答案
arsenmrkt:我有完全相同的问题,如果我使用DataTemplate填充MenuItem,我似乎无法将子代添加到任何这些生成的项中。但是,我不明白您的回答,我应该如何使用ContentPresenter来解决此问题?
编辑:
实际上,我的问题并不完全相同,因为我试图将集合的集合绑定(bind)到菜单。我想我已经使用HierarchicalDataTemplate使它工作了:
<Menu>
<MenuItem Header="{Binding Name}" ItemsSource="{Binding MenuOptions}">
<MenuItem.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Categories}">
<MenuItem Header="{Binding Name}"/>
<HierarchicalDataTemplate.ItemTemplate>
<DataTemplate>
<MenuItem Header="{Binding Name}"/>
</DataTemplate>
</HierarchicalDataTemplate.ItemTemplate>
</HierarchicalDataTemplate>
</MenuItem.ItemTemplate>
</MenuItem>
</Menu>
这对您NicholasF有帮助吗?
关于c# - WPF MenuItem子项未显示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/933403/