MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit
Event handler leak on drawerHost
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C#
- Sterne
- 16.3k
- Forks
- 3.5k
- Ø Merge
- 1 T. 22 Std.
- Gemergte PRs (30 T.)
- 8
Beschreibung
Bug explanation
Hi, i'm using MaterialDesign's DrawerHost but when i repeatedly open/close the drawer, it generate System.Windows.VisualStateManager+<>c__DisplayClass12_0 and MS.Internal.FreezableDefaultValueFactory+FreezableDefaultPromoter event handler leak according to dotMemory.
here is the simplified implementation, the elements use the base style of materialDesign and the binding is a property using PropertyChanged:
<materialDesign:DrawerHost IsLeftDrawerOpen="{Binding IsDrawerOpen}" OpenMode="Standard"
LeftDrawerCloseOnClickAway="True">
<materialDesign:DrawerHost.LeftDrawerContent>
<TextBlock Text="oui"/>
</materialDesign:DrawerHost.LeftDrawerContent>
<ToggleButton IsChecked="{Binding IsDrawerOpen}"/>
</materialDesign:DrawerHost>
Thanks
Version
5.1.0
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne damit, die wiederholte Öffnen/Schließen-Sequenz mit dem DrawerHost-Beispiel zu reproduzieren, und verwende dotMemory, um das Leck des VisualStateManager- und FreezableDefaultValueFactory-Handlers zu bestätigen. Untersuche die Ereignisbehandlung von DrawerHost und vergleiche die Speicher-Snapshots vor und nach wiederholten Zyklen; abgeschlossen ist die Aufgabe, wenn sich die gemeldeten Handler nicht mehr ansammeln.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- csharp
- Bereich
- desktop
- Issue-Typ
- Bug
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Aktivitätsstatus
- Veraltet
- Klarheit
- Muss geklärt werden
- Anfängerfreundlichkeit
- 28/100