J'utilise beaucoup CallMethodAction d'Express interactions pour gérer les événements de XAML d'une manière conviviale pour MVVM.
Je viens de créer un nouveau projet WPF dans VS2017 et je constate maintenant que l'ancien espace de noms Expression a disparu. J'ai trouvé cette page sur MSDN qui est l'action que je recherche, mais après avoir référencé cet assembly et ajouté l'espace de noms, celui-ci ne contient pas CallMethodAction. Cette page est destinée à Silverlight et à WPF. Je crains donc que cette action ne soit plus disponible.
Alors, est-ce que quelqu'un sait s'il a été retiré/remplacé? Comment peut-on appeler des gestionnaires d'événements sur le modèle de vue maintenant?
(Je connais InvokeCommandAction, mais je préfère CallMethodAction car il retransmet les arguments de l'événement d'origine et permet d'annuler les événements de prévisualisation.)
Edit : Juste pour avancer, j'ai essayé InvokeCommandAction mais cela ne fonctionne plus de la même manière non plus et je ne trouve aucune documentation sur le nouvel usage.
J'ai trouvé cette référence sur MSDN pour l'espace de noms Microsoft.Xaml.Interactions qui semble contenir les classes dont j'ai besoin, mais cet assembly ne semble pas exister.
J'ai l'impression qu'il me manque quelque chose d'évident ici. Je ne vois pas comment ils pourraient apporter un changement radical à quelque chose d'aussi fondamental que de réagir aux événements.
Utilisez le programme d'installation de Visual Studio 2017 pour installer "Blend pour le Kit de développement logiciel Visual Studio pour .NET", que vous trouverez sur la page "Composants individuels", dans la rubrique "SDK, bibliothèques et cadres".
CallMethodAction
est défini dans Microsoft.Expressions.Interactions.dll. Cet assemblage ne fait pas partie du .NET Framework, mais vous pouvez le télécharger avec NuGet: https://www.nuget.org/packages/MicrosoftExpressionInteractions/
Et la classe InvokeCommandAction
est définie dans System.Windows.Interactivity.dll Assembly: https://www.nuget.org/packages/System.Windows.Interactivity.WPF/