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 inconnue.RelayCommand ne se déclenche pas sur MenuItem cliquez sur WPF MVVM
C'est le XAML:
<Menu Height="21"
Margin="0,-2,0,0"
VerticalAlignment="Top"
Grid.ColumnSpan="2">
<MenuItem Header="File" Command="{Binding ImportFileCommand}">Import</MenuItem>
</Menu>
Et cela est dans mon modèle de vue:
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 je l'ai utilisé pour tous mes boutons sur la forme mais l'élément de menu ça ne marchera pas. Ai-je manqué quelque chose ou est-ce que les éléments de menu doivent être faits différemment?
Merci.
Avez-vous le DataContext approprié dans le menu? Cette partie n'est pas claire à partir de la question. Sinon, ça a l'air bien. –
Ouais, si je mets un point d'arrêt sur ImportFileCommand, le RelayCommand se lève mais il ne veut pas se déclencher. –