Skip to content

Comments

Add workaround so ItemsRepeater doesn't leak the result of DataTemplate::Load#3068

Merged
ranjeshj merged 3 commits intomasterfrom
user/jevansaks/fixitemsrepeaterleak
Aug 7, 2020
Merged

Add workaround so ItemsRepeater doesn't leak the result of DataTemplate::Load#3068
ranjeshj merged 3 commits intomasterfrom
user/jevansaks/fixitemsrepeaterleak

Conversation

@jevansaks
Copy link
Member

The thread of #1954 has lots more information, but the short story is that ItemsRepeater has a call to DataTemplate::LoadContent to decide if the template is empty. DataTemplate::LoadContent has a bug (#3057) where if you don't add the result to a UIElementCollection then the returned object will be leaked. The simplest workaround is to just add the result to the ItemsRepeater's own child collection and immediately remove it.

Thanks @chingucoding for the test code. I changed the scenario a little from what you had built because I wanted to verify that all the items get cleaned up.

Fixes #1954

@jevansaks jevansaks requested a review from ranjeshj August 6, 2020 22:57
@msft-github-bot msft-github-bot added the needs-triage Issue needs to be triaged by the area owners label Aug 6, 2020
@StephenLPeters StephenLPeters added area-ItemsRepeater team-Controls Issue for the Controls team and removed needs-triage Issue needs to be triaged by the area owners labels Aug 6, 2020
@jevansaks
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jevansaks
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@jevansaks
Copy link
Member Author

/azp run

@azure-pipelines
Copy link

Azure Pipelines successfully started running 1 pipeline(s).

@ranjeshj ranjeshj merged commit 8635052 into master Aug 7, 2020
@ranjeshj ranjeshj deleted the user/jevansaks/fixitemsrepeaterleak branch August 7, 2020 19:50
Kinnara added a commit to Kinnara/ModernWpf that referenced this pull request Aug 16, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

area-ItemsRepeater team-Controls Issue for the Controls team

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Is ItemsRepeater leaky

5 participants