MaterialDesignInXAML / MaterialDesignInXAML/MaterialDesignInXamlToolkit
Event handler leak on drawerHost
まだ誰も着手していません。
- 主要言語
- C#
- スター
- 16.3k
- フォーク
- 3.5k
- 平均マージ
- 1日 22時間
- マージ済み PR(30日)
- 8
説明
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
コントリビューションガイド
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
調査の方向性
まず、DrawerHost の例で開く/閉じるシーケンスを繰り返し再現し、dotMemory を使って VisualStateManager と FreezableDefaultValueFactory のハンドラーリークを確認します。DrawerHost のイベント処理を調査し、繰り返しサイクルの前後でメモリスナップショットを比較します。報告されたハンドラーが蓄積しなくなれば完了です。
索引モデルが issue の本文から書いたものです。
評価
- 技術スタック
- csharp
- 領域
- desktop
- issue の種類
- バグ
- 難易度
- 4/5
- 見積もり時間
- 3〜5日
- 活発さ
- 停滞
- 明瞭さ
- 説明が足りない
- 初心者へのやさしさ
- 28/100