WPF DataGrid ItemsSource 内存泄漏

WPF DataGrid ItemsSource memory leak

我不知道为什么,但是当我定义我的 DataGrid 的 ItemsSource 时,它​​会造成一些内存泄漏。

这是我的 DataGrid 的 xaml 代码:

<DataGrid x:Name="DataGrid1" AutoGenerateColumns="True" IsReadOnly="True" ClipboardCopyMode="ExcludeHeader" Margin="20,250,20,20" SelectionUnit="Cell" Style="{DynamicResource MaterialDesignDataGrid}" SelectionMode="Single"/>

这是我定义 ItemsSource 的代码:

cmd = New SqlCommand With {
    .CommandText = strsql,
    .Connection = DBConn.ADONETconn
    }
da = New SqlDataAdapter(cmd)
dt = New DataTable("RECH")
da.Fill(dt)
DataGrid1.ItemsSource = dt.DefaultView

正如您从诊断工具中看到的那样,我的某处存在内存泄漏。

我知道它是由行 DataGrid1.ItemsSource = dt.DefaultView 引起的,因为如果我注释掉它,就不会发生内存泄漏。

我已经下载了 JetBrains dotMemory 以查看发生了什么。 正如您在下面看到的,它告诉我它是由 DataGridRow 引起的。

我不明白为什么会这样。 DataTable 中的数据是正确的。

如果你有任何线索,请与我分享

找到了!实际上它来自于我的 DataGrid 在 StackPanel 中的事实。我仍然不知道为什么,但这是一个问题。