DataGridView not dispose old elements
- Dominant language
- C#
- Stars
- 4.9k
- Forks
- 1.1k
- Avg merge
- 20h 23m
- Merged PRs (30d)
- 103
Description
* .NET Core Version: all up to 7.0 p2
* Have you experienced this same bug with .NET Framework?: Yes
**Problem description:**
As I mentioned in https://github.com/dotnet/winforms/issues/6858 `DataGridView` not dispose old data on `DataSource` change. This is lead to 2 problems:
1. All this stuff are going to finalization query because we have unnecessary finalizer here #6858.
2. If we have a `ContextMenuStrip` bound to Cell/Column/Row we will have a memory leak. `DataGridView` with 3 columns and `ContextMenuStrip` bound to 1000 rows, result of DS refresh:

**Expected behavior:**
Old data must be property disposed. Probably in `DataGridView.RefreshColumnsAndRows()` (in `DataGridView.Methods.cs`)
**Minimal repro:**
[DataGridViewLeak.zip](https://github.com/dotnet/winforms/files/8288127/DataGridViewLeak.zip)
Contributor guide
Assessment
This issue has not been assessed yet.