2009-05-20 201 views
0

我有下面的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命令綁定指定應爲CanExecute調用CommandBinding_CanExecute,但CommandBinding_CanExecute永遠不會被調用。關閉菜單項始終禁用。

我假定綁定沒有發生。任何人都可以解釋爲什麼?

如果它與上下文菜單不在視覺樹中有關係,你如何解決它?

回答

1

此聲明Command="Close"不做任何事情。你在說Command是字符串「Close」。這就是爲什麼它不起作用。

如果在窗口中定義了關閉命令實例,請使用Command="{Binding Close}"。或者如果您正在使用ApplicationCommands.Close,那麼它將是

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