Om du får ett “delegatecommand.canexecutechanged Memory Leak”-fel, bör det här blogginlägget hjälpa.
Godkänd: Fortect
Godkänd: Fortect
Fortect är världens mest populära och effektiva PC-reparationsverktyg. Det litar på miljontals människor för att hålla sina system igång snabbt, smidigt och felfritt. Med sitt enkla användargränssnitt och kraftfulla skanningsmotor hittar och fixar Fortect snabbt ett brett utbud av Windows-problem – från systeminstabilitet och säkerhetsproblem till minneshantering och prestandaflaskhalsar.
Jag har nyligen avslutat arbetet med skrivbordsanvändningar skrivna i WPF och C # med MVVM-mönster. I den här mobilappen använde jag en ny Delegate Command-implementering för att slå in ICommands-platserna som presenteras i min ModelView. Problemet är att dessa DelegateCommands kan förhindra att vissa ModelViews blir oönskade efter att vyn stängs. Så det trippar dolt tills jag avbryter hela blanketten. Jag profilerar applikationen jag möter.Hur kan jag undvika den här typen av problem och är det internt relaterat till någon mvvm-mall eller är det en mallimplantation?. Tack.
Edit: Det här är en liten men framgångsrik men komplett del bakom min partners MVVM-implementering
DelegateCommand-klass: ICommand avslutad offentlig åtgärd ; privatägt predikat
allmänt tillgänglig klass ViewModel: DependencyObject, INotifyPropertyChanged Private DelegateCommand printCommand; Public ICommand PrintCommand kommer som om (printCommand == null) printCommand betyder nytt DelegateCommand (Print, CanExecutePrint); return printCommand; Utskriftsmiljö (objekt-objekt) Console.WriteLine ("Utskriftsorder"); bool CanExecutePrint (obj-objekt) returnerar sant; PropertyChangedEventHandler PropertyChanged offentlig arresteringshändelse privat void OnProeprtyChanged (string propertyName) if (PropertyChanged! är noll) PropertyChanged (detta, nya PropertyChangedEventArgs (egenskapsnamn));
public MainWindow () Initiera komponent (); Base .DataContext innebär ny ViewModel ();
Snabba upp din dators prestanda nu med denna enkla nedladdning.