Comment voulez-vous lier une commande pour un MenuItem (WPF)?

Voici mon code à partir de la Vue.xaml.cs:

private RelayCommand _closeCommand;
public ICommand CloseCommand
{
    get
    {
        if (_closeCommand == null)
        {
            _closeCommand = new RelayCommand(param => this.OnClose());
        }
        return _closeCommand;
    }
}

public void OnClose()
{
    Close();
}

Et voici le code de mon point de Vue.xaml:

<Window.ContextMenu>
    <ContextMenu>
        <MenuItem Name="menuItem_Close" Header="Close" Command="{Binding CloseCommand}" />
    </ContextMenu> 
</Window.ContextMenu>

Quand je lance le programme et sélectionnez la fermeture de l'élément de menu, rien ne se passe. Le CloseCommand code n'est pas encore exécutée.

Avez-vous mis le DataContext?
J'ai trouvé la solution à mon problème. J'ai été en utilisant un ViewModel qui avait une propriété qui a été un autre ViewModel type et j'ai besoin d'étendue à ce propery en faisant ceci: Command="{Binding ActiveVM.CloseCommand}"
J'ai trouvé une solution à votre question [stackoverflow.com/questions/898852/... [1]: stackoverflow.com/questions/898852/...

OriginalL'auteur Jackson Dean Goodwin | 2012-12-11