Невозможно привязать команду из пункта меню к привязке команды - PullRequest
0 голосов
/ 20 мая 2009

У меня есть следующий 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 никогда не вызывается. Пункт меню закрытия всегда отключен.

Я предполагаю, что привязка не происходит. Кто-нибудь может объяснить, почему?

Если это как-то связано с отсутствием контекстных меню в визуальном дереве, как вы можете обойти это?

1 Ответ

1 голос
/ 20 мая 2009

Это утверждение Command="Close" ничего не делает. Вы говорите, что Командой является строка «Закрыть». Вот почему это не работает.

Если в окне определен экземпляр команды Close, используйте Command="{Binding Close}". Или, если вы используете ApplicationCommands.Close, то это будет

Command="{x:Static ApplicationCommands.Close}"
...