MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit
Event handler leak on drawerHost
Nadie ha tomado este issue todavía.
- Lenguaje dominante
- C#
- Estrellas
- 16.3k
- Forks
- 3.5k
- Merge medio
- 1 d 22 h
- PR fusionados (30 d)
- 8
Descripción
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
Guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Línea de trabajo
Comienza reproduciendo la secuencia repetida de apertura/cierre con el ejemplo de DrawerHost, usando dotMemory para confirmar la fuga del handler de VisualStateManager y FreezableDefaultValueFactory. Inspecciona el manejo de eventos de DrawerHost y compara las instantáneas de memoria antes y después de ciclos repetidos; se considera terminado cuando los handlers reportados ya no se acumulan.
Escrito por el modelo de indexación a partir del texto del issue.
Evaluación
- Stack tecnológico
- csharp
- Área
- desktop
- Tipo de issue
- Error
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Estado de actividad
- Estancado
- Claridad
- Necesita aclaración
- Aptitud para principiantes
- 28/100