J'ai une classe ViewModel que je veux répondre à la commande intégrée Refresh qui est déclenchée à partir d'un bouton mais je ne suis pas sûr de savoir comment déclarer CommandTarget.Obtention d'objets non-interface utilisateur pour répondre aux liaisons de commandes WPF
En bref, mon code est comme ci-dessous
Le constructeur ViewModel et CanExecute et gestionnaires d'événements Exécuté -
public ViewModel()
{
CommandBinding binding = new CommandBinding(NavigationCommands.Refresh, CommandHandler);
binding.CanExecute += new CanExecuteRoutedEventHandler(binding_CanExecute);
binding.Executed += new ExecutedRoutedEventHandler(binding_Executed);
CommandManager.RegisterClassCommandBinding(typeof(ViewModel), binding);
}
void binding_Executed(object sender, ExecutedRoutedEventArgs e)
{
Debug.Print("Refreshing...");
}
void binding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
Le balisage est -
<Button Command="Refresh">refresh</Button>
Maintenant, j'ai essayé de placer le CommandTarget sur ce bouton à {Binding Source={StaticResource ViewModel}}
mais je reçois un temps d'exécution en disant Cannot convert the value in attribute 'CommandTarget' to object of type 'System.Windows.IInputElement'
. Je suis nouveau pour les commandes, donc il est tout à fait possible que je suis mal de toutes sortes ici. Toute aide serait appréciée.
Merci Kent. qui aide – Stimul8d