У меня есть следующий 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>
Пункты меню Close указывают, что он должен использовать команду Close. Привязка команды Close указывает, что CommandBinding_CanExecute должен вызываться для CanExecute, но CommandBinding_CanExecute никогда не вызывается. Пункт меню закрытия всегда отключен.
Я предполагаю, что привязка не происходит. Кто-нибудь может объяснить, почему?
Если это как-то связано с отсутствием контекстных меню в визуальном дереве, как вы можете обойти это?