<Menu DockPanel.Dock="Top" x:Name="MainMenu">
<MenuItem Header="_Fichier">
<MenuItem Header="_Nouveau patient" x:Name="miNewPatient" Command="{Binding NewPatientCommand}" InputGestureText="Ctrl+N"/>
<MenuItem Header="_Ouvrir..." x:Name="miOpen" InputGestureText="Ctrl+O"/>
<Separator/>
<MenuItem Header="_Exporter" x:Name="miExport"/>
<MenuItem Header="_Initialiser" x:Name="miInitialize" Command="{Binding InitializeDatabaseCommand}"/>
<Separator/>
<MenuItem Header="_Quitter" x:Name="miExit" InputGestureText="Alt+F4"/>
</MenuItem>
<Menu>
using System.Windows.Input;
public class XXXX_ViewModel
{
public ICommand NewPatientCommand { get; }
public ICommand InitializeDatabaseCommand { get; }
public MainMedicalManagementViewModel()
{
NewPatientCommand = new XXXX_RelayCommand(_ => NewPatient(), _=> true);
InitializeDatabaseCommand = new XXXX_RelayCommand(InitializeDatabase, _ => true);
}
private void NewPatient() {
MessageBox.Show("Nouveau patient");
}
private void InitializeDatabase(object? choice)
{
MessageBox.Show("Initialisation de la base de données", "Info");
}
}
public class xxxx_RelayCommand : ICommand
{
public event EventHandler? CanExecuteChanged;
private readonly Action<object?> _execute;
private readonly Func<object?, bool>? _canExecute;
public bool CanExecute(object? parameter)
{
return _canExecute==null ? true : _canExecute(parameter);
}
public void Execute(object? parameter)
{
if (_execute != null)
{
_execute(parameter);
}
}
public XXXX_RelayCommand(Action<object?> execute, Func<object?, bool>? canExecute = null)
{
_execute = execute;
_canExecute = canExecute;
}
}