RelayCommand ne se déclenche pas sur MenuItem, cliquez sur WPF MVVM

J’ai un élément de menu sur mon formulaire WPF qui exécute une routine d’importation, j’ai lié la propriété de commande à une propriété ICommand dans mon modèle de vue, mais pour une raison quelconque, la méthode ne se déclenche pas.

C’est le xaml:

 Import  

Et c’est à mon avis le modèle:

  private ICommand importfilecommand; public ICommand ImportFileCommand { get { if (this.importfilecommand == null) { this.importfilecommand = new RelayCommand(parm => ImportFile()); } return this.importfilecommand; } } private void ImportFile() { OpenFileDialog dialog = new OpenFileDialog(); dialog.Filter = "Tab Files (*.tab)|*.tab*"; if (dialog.ShowDialog() == true) { // MessageBox.Show(dialog.FileName); } } 

C’est le modèle que j’ai utilisé pour tous mes boutons du formulaire, mais l’élément de menu ne fonctionne tout simplement pas. Est-ce que je manque quelque chose ou est-ce que les éléments de menu doivent être faits différemment?

Merci.

Changez votre XAML en

      

Dans votre exemple, le contenu “Importer” de l’élément MenuItem crée implicitement un enfant MenuItem du fichier parent MenuItem. Cet enfant MenuItem n’a pas de propriété de commande définie et ne peut donc pas être exécuté. Apparemment, l’exécutabilité de la commande définie sur le menuItem parent est remplacée par la fonctionnalité de développement du sous-menu.