2009-05-20 6 views
0

ich folgende XAML haben:Kann nicht den Befehl Menüpunkt auf einen Befehl binden Bindung

<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> 

Die Close Menüpunkte gibt an, dass sie den Befehl Schließen verwenden sollten. Die Close-Befehlsbindung gibt an, dass CommandBinding_CanExecute für CanExecute aufgerufen werden sollte, CommandBinding_CanExecute jedoch nie aufgerufen wird. Der Schließen-Menüpunkt ist immer deaktiviert.

Ich nehme an, dass die Bindung nicht stattfindet. Kann jemand erklären warum?

Wenn es etwas mit Kontextmenüs zu tun hat, die sich nicht im visuellen Baum befinden, wie kommt man damit um?

Antwort

1

Diese Aussage Command="Close" tut nichts. Sie sagen, dass der Befehl die Zeichenfolge "Close" ist. Deshalb funktioniert es nicht.

Wenn die Close-Befehlsinstanz im Fenster definiert ist, verwenden Sie Command="{Binding Close}". Oder wenn Sie die ApplicationCommands.Close verwenden, dann wäre es

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