Доброго времени суток!
Хочу объединить ContextMenu
разных контролов. Как можно такое реализовать?
Пытался через CompositeCollection
, но когда вызываю ContextMenu
у StackPanel
, а потом у Button
, а потом снова у StackPanel
, то у StackPanel
пропадает MenuItem
.
<Window.DataContext>
<local:MainMenuViewModel></local:MainMenuViewModel>
</Window.DataContext>
<Window.Resources>
<x:Array Type="{x:Type MenuItem}" x:Key="mn">
<MenuItem Header="Main Context" Command="{Binding TestCommand}"></MenuItem>
</x:Array>
</Window.Resources>
<StackPanel Background="Green" Height="100" Width="100" x:Name="myStackPanel">
<StackPanel.ContextMenu>
<ContextMenu ItemsSource="{StaticResource ResourceKey=mn}"></ContextMenu>
</StackPanel.ContextMenu>
<Button Content="Button" Width="120" Height="30">
<Button.ContextMenu>
<ContextMenu>
<ContextMenu.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{StaticResource ResourceKey=mn}"/>
<Separator/>
<MenuItem Header="Child Context" Command="{Binding TestCommand}"/>
</CompositeCollection>
</ContextMenu.ItemsSource>
</ContextMenu>
</Button.ContextMenu>
</Button>
</StackPanel>
MenuItem
не может одновременно принадлежать разным ContextMenu
. Поэтому для решения данной проблемы нужно создать разные экземпляры MenuItem
<Window.Resources>
<MenuItem x:Key="mainContext" Header="Main Context" x:Shared="False" Command="{Binding TestCommand}"/>
<x:Array x:Key="mainContextMenu" Type="{x:Type MenuItem}" x:Shared="False">
<StaticResource ResourceKey="mainContext"/>
</x:Array>
</Window.Resources>
Полный код:
<Window.DataContext>
<local:MainMenuViewModel></local:MainMenuViewModel>
</Window.DataContext>
<Window.Resources>
<MenuItem x:Key="mainContext" Header="Main Context" x:Shared="False" Command="{Binding TestCommand}"/>
<x:Array x:Key="mainContextMenu" Type="{x:Type MenuItem}" x:Shared="False">
<StaticResource ResourceKey="mainContext"/>
</x:Array>
</Window.Resources>
<Window.ContextMenu>
<ContextMenu ItemsSource="{StaticResource ResourceKey=mainContextMenu}"></ContextMenu>
</Window.ContextMenu>
<Button Content="Button" Width="120" Height="30">
<Button.ContextMenu>
<ContextMenu>
<ContextMenu.ItemsSource>
<CompositeCollection>
<CollectionContainer Collection="{StaticResource ResourceKey=mainContextMenu}"/>
<Separator/>
<MenuItem Header="Button Context" Command="{Binding TestCommand}"/>
</CompositeCollection>
</ContextMenu.ItemsSource>
</ContextMenu>
</Button.ContextMenu>
</Button>
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Пытался открывать Access не получается, даже Max Payne Editor качал, не помогаетА в интернете прогу нашёл, так она вообще пишет это:
Есть четыре модели: Hoodie, Longsleeve, Shirt, CartПервые три модели содержат одинаковые свойства - Id, материал, размер и т