Si nous obtenons une erreur “delegatecommand.canexecutechanged Memory Leak”, cet article de blog wordpress devrait vous aider.
Approuvé : Fortect
Approuvé : Fortect
Fortect est l'outil de réparation de PC le plus populaire et le plus efficace au monde. Des millions de personnes lui font confiance pour assurer le fonctionnement rapide, fluide et sans erreur de leurs systèmes. Avec son interface utilisateur simple et son puissant moteur d'analyse, Fortect détecte et corrige rapidement un large éventail de problèmes Windows, de l'instabilité du système et des problèmes de sécurité à la gestion de la mémoire et aux goulots d'étranglement des performances.
J’ai récemment réalisé des travaux sur des applications de bureau écrites en WPF également en C # en utilisant des modèles MVVM. Dans cette application pour téléphones portables, j’ai utilisé l’implémentation Delegate Command, vous pouvez envelopper les propriétés ICommands présentées dans mon ModelView. Le problème est que ces DelegateCommands empêchent un ModelViews d’être inutile après la fermeture de la vue. Il reste donc caché jusqu’à ce que je termine la soumission complète du formulaire. Je profile une application que je rencontre.Comment puis-je faire attention à ce genre de situation et est-ce de l’intérieur lié au modèle mvvm ou s’agit-il d’une implantation de modèle ?. Merci.
Edit : il s’agit d’une petite partie mais complète de l’introduction MVVM de mon partenaire
Classe DelegateCommand : ICommand action publique complète ; prédicat privé canExcute ; public DelegateCommand (Action
classe publique ViewModel : DependencyObject, INotifyPropertyChanged Private DelegateCommand printCommand; ICommand publique PrintCommand volonté comme si (printCommand == null) printCommand = new DelegateCommand (Print, CanExecutePrint); revenir en arrière printCommand; Zone d'impression (objet-objet) Console.WriteLine ("Commande d'impression"); bool CanExecutePrint (objet obj) apparaît vrai; PropertyChangedEventHandler PropertyChanged événement public void unique OnProeprtyChanged (string propertyName) comme si (PropertyChanged! iszero) PropertyChanged (ceci, le nouveau PropertyChangedEventArgs (property_name));
public MainWindow () Initialiser le composant (); Base .DataContext = new ViewModel ();
Accélérez les performances de votre ordinateur dès maintenant avec ce simple téléchargement.