Event handler leak on drawerHost

Aberta
#3,708 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
3-5 dias
Facilidade para iniciantes
28/100
Tipo de issue
Bug
Clareza
Precisa de esclarecimento
Status de atividade
Estagnada
Stack de tecnologia
csharp
Domínio
desktop

Direção de pesquisa

Comece reproduzindo a sequência repetida de abrir/fechar com o exemplo DrawerHost, usando dotMemory para confirmar o vazamento do handler de VisualStateManager e FreezableDefaultValueFactory. Inspecione o tratamento de eventos de DrawerHost e compare os snapshots de memória antes e depois de ciclos repetidos; considera-se concluído quando os handlers relatados não se acumularem mais.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug evaluation required
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.

dotmemory_eventleak

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

Linguagem predominante
C#
Estrelas
16.3k
Forks
3.5k
Merge médio
4h 25min
PRs com merge (30d)
4

Preparar o ambiente

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de MaterialDesignInXAML/MaterialDesignInXamlToolkit

Todas as issues de MaterialDesignInXAML/MaterialDesignInXamlToolkit

Issues semelhantes

Mais issues de C#

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.