Question

Mon Viewmodel a un événement

public class TestViewModel 
{
    public event RoutedEventHandler Run;
}

Je veux déclencher cet événement lorsque l'utilisateur clique sur un bouton dans la vue

Comment lier ceci avec un bouton dans une vue?

Était-ce utile?

La solution

Les Les événements routés sont destinés aux contrôles et non à l'affichage des modèles, si vous avez quelque chose qui devrait êtreexécuté sur un bouton cliquez sur une commande serait plus appropriée à mon avis, elle peut être facilement liéeau Button.Command .

Autres conseils

Je pense que vous devriez utiliser DelegateCommand pour un tel comportement.

Dans votre modèle de vue:

private DelegateCommand _runCommand;
public DelegateCommand RunCommand
{
    get
    {
        if (_runCommand == null)
            _runCommand = new DelegateCommand(Run, CanRun);

        return _runCommand;
    }
}

void Run()
{
    ... 
}

bool CanSaveAction()
{
    return true;
}

Sur votre page:

<Button Command="{Binding RunCommand}" />
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top