我不知道为什么,但是当我定义DataGrid的DataGrid时,它会产生一些内存泄漏。
这是我的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中的数据是正确的。

如果你有任何线索,请和我分享
发布于 2021-12-14 14:17:22
找到了!实际上,这是因为我的DataGrid在StackPanel中。我还是不知道为什么但这是个问题。
https://stackoverflow.com/questions/70350262
复制相似问题