Afficher l'événement de modèle lié au clic de bouton
-
28-10-2019 - |
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?
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