我正在尝试将 DataTable 分配为 dataGrid1 dataGrid1.ItemsSource = dtselect.DefaultView 的 itemsource 但它给出 System.OutOfMemoryException我有一个包含多个 DataTable 的数据集。我在该按钮上随机创建一个按钮单击我想显示从 DataTable 到 dataGrid1 的数据,但这里的问题是 DataTable 有超过 200 万行,当我单击一个按钮时,它需要超过 2gb 的内存并给我系统。内存不足异常。Button = sender as Button; string content = button.Content.ToString(); foreach (DataTable table in dsr.Tables) { if (table.TableName == content) { dataGrid1.ItemsSource = table.DefaultView; dtselect = table; } }我希望输出更少的内存使用和显示结果而不是 System.OutOfMemoryException
1 回答
qq_遁去的一_1
TA贡献1725条经验 获得超8个赞
<Viewbox Grid.Row="3" Stretch="Fill">
<DataGrid x:Name="dataGrid1" Grid.Row="3" VirtualizingPanel.VirtualizationMode="Recycling" BorderThickness="0" VirtualizingPanel.IsVirtualizing="True" CanUserSortColumns="True" EnableRowVirtualization="True" IsReadOnly="True" CanUserResizeColumns="True" CanUserAddRows="False" VerticalAlignment="Bottom" HorizontalAlignment="Stretch" VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Auto" ScrollViewer.CanContentScroll="True" Height="600" Width="auto" ItemsSource="{Binding}" AutoGenerateColumns="False" ScrollViewer.VerticalScrollBarVisibility="Auto" Background="#b5d2fc" ClipboardCopyMode="IncludeHeader" SelectionMode="Extended" CanUserDeleteRows="False">
<DataGrid.Columns>
<DataGridTextColumn Width="200" Header="Day" Binding="{Binding Day}"/>
<DataGridTextColumn Width="200" Header="Date" Binding="{Binding Date}"/>
<DataGridTextColumn Width="200" Header="Time" Binding="{Binding Time}"/>
<DataGridTextColumn Width="200" Header="Lat" Binding="{Binding Lat}"/>
<DataGridTextColumn Width="200" Header="Long" Binding="{Binding Long}"/>
<DataGridTextColumn Width="400" Header="Address" Binding="{Binding Address}"/>
<DataGridTextColumn Width="200" Header="Accuracy" Binding="{Binding Accuracy}"/>
<DataGridTextColumn Width="200" Header="Type" Binding="{Binding Type}"/>
</DataGrid.Columns>
</DataGrid>
</Viewbox>我只需添加 Viewbox,如果我加载两个以上具有大量数据的文件,我的代码就可以正常工作,那么它消耗的内存也更少
- 1 回答
- 0 关注
- 115 浏览
添加回答
举报
0/150
提交
取消
