Imaginons que j'ai XAML qui ressemble à ceci:Adresser une commande WPF du gestionnaire d'aperçu, et pas coincé dans la boucle
<UserControl.CommandBindings>
<CommandBinding Command="ApplicationCommands.Delete" Executed="CommandBinding_DeleteExecuted" PreviewExecuted="CommandBinding_PreviewDeleteExecuted"/>
</UserControl.CommandBindings>
Et je code C# qui ressemble à ceci:
private void CommandBinding_DeleteExecuted(object sender, ExecutedRoutedEventArgs e)
{
}
private void CommandBinding_PreviewDeleteExecuted(object sender, ExecutedRoutedEventArgs e)
{
//Would like to invoke Delete command from here
}
Ce que je voudrais faire est de faire appeler mon gestionnaire de prévisualisation et de faire une vérification personnalisée. Si la vérification personnalisée réussit, je voudrais invoquer à nouveau la commande delete depuis le gestionnaire de prévisualisation (ou plutôt invoquer, si je pouvais faire passer la commande d'origine à travers mon aperçu et exécuter les gestionnaires, ce serait génial) . Donc, à ce stade, lorsque je relance la commande delete, aucun autre XAML n'est impliqué.
Si je réémets la commande Delete de mon gestionnaire de prévisualisation, j'imagine que cela entraînerait le rappel du gestionnaire de prévisualisation (sans fin dans une boucle). Au lieu de cela, je voudrais que la commande re-émise ignore mon aperçu et exécute le gestionnaire et laisse n'importe quel gestionnaire de commande de suppression plus bas dans l'arbre manipule la commande de suppression.
Y at-il un moyen de le faire?
Je ne sais pas exactement ce que vous avez besoin. Donc, si votre vérification personnalisée réussit, vous ne voulez pas que le gestionnaire Exécuté soit appelé? Au lieu de cela, vous voulez qu'il soit appelé sur d'autres commandes sur l'arbre? Et si la commande ne passe pas, vous voulez qu'elle soit appelée? –
Si la vérification personnalisée échoue. alors je ne veux pas que le gestionnaire exécuté soit appelé; à la place rien ne se passe. Si la vérification personnalisée réussit, je veux appeler la commande comme si mon gestionnaire previewexecute n'était pas en place. – Notre