我正在创建一个工具栏usercontrol,其中包含一些动态添加的菜单项。菜单项是usercontrol的数据上下文中可观察控件集合的一部分,并且绑定到其顶级"的项目源。菜单项如下面的代码所示。
<UserControl.Resources>
<ResourceDictionary>
<MenuItem x:Key="fileKey" x:Shared="False" Header="_File" ItemsSource="{Binding FileMenuItems}" />
<MenuItem x:Key="viewKey" x:Shared="False" Header="_View" ItemsSource="{Binding ViewMenuItems}" />
...
这些顶级菜单中的一些在主要下拉菜单和主文本菜单栏中的视图的多个部分中重复。
<Menu Name="dropDownMenu">
<MenuItem>
<StaticResource ResourceKey="fileKey" />
<StaticResource ResourceKey="viewKey" />
</MenuItem>
</Menu>
...
<StackPanel x:Name="TextMenuPanel" Orientation="Horizontal">
<Menu Name="File">
<StaticResource ResourceKey="fileKey" />
</Menu>
</StackPanel>
我遇到的问题是,如果我打开,说出#34;文件&#34;,从一个菜单,然后另一个菜单,然后尝试再次打开第一个菜单,它显示一个没有标题的空盒子等。如果重新打开,则先前打开的菜单会继续正确显示菜单的原始大小。
如何在不破坏视图的情况下在多个位置正确显示绑定的菜单项?