Não é possível vincular comando do item de menu a um comando Encadernação
-
23-08-2019 - |
Pergunta
Eu tenho o seguinte XAML:
<Window x:Class="Isolator.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Isolator" Height="394" Width="486" Background="Black" WindowStyle="None" WindowState="Maximized">
<Window.CommandBindings>
<CommandBinding Command="Close" Executed="CommandBinding_Executed" CanExecute="CommandBinding_CanExecute"/>
</Window.CommandBindings>
<Window.ContextMenu>
<ContextMenu>
<MenuItem Header="Stop" Name="StopMenuItem" Click="StopMenuItem_Click" />
<MenuItem Header="Close" Command="Close"/>
</ContextMenu>
</Window.ContextMenu>
<Grid Loaded="Grid_Loaded">
</Grid>
</Window>
A estreita itens de menu especifica que ele deve usar o comando Fechar. O comando Fechar especifica ligação que CommandBinding_CanExecute deve ser chamado para CanExecute, mas CommandBinding_CanExecute nunca é chamado. O item de menu perto é sempre desativado.
Eu assumo que a ligação não está ocorrendo. Qualquer um pode explicar por quê?
Se ele tem algo a ver com menus de contexto não ser na árvore visual, como fazê-lo trabalhar em torno dele?
Solução
Esta Command="Close"
declaração não faz nada. Você está dizendo que o comando é a cadeia "Close". É por isso que ele não funciona.
Se a instância comando Fechar é definido na janela, Command="{Binding Close}"
uso. Ou se estiver usando o ApplicationCommands.Close, então seria
Command="{x:Static ApplicationCommands.Close}"