我有一个非常大的XML文件,4677 KB - 基本围绕26000行,每行看起来像:尝试加载一个很长的名单WPF的DataGrid
<samples>
<sample id=1 field =test field1=test1 field2=test2 field3=""test3"" field4=""test4"" field5=""test5"" field6=""test6"" field7=""test7"" field8=""test8"" field9=""test9"" field10=""test10"" />
<sample id=""2"" field =""test"" field1=""test1"" field2=""test2"" field3=""test3"" field4=""test4"" field5=""test5"" field6=""test6"" field7=""test7"" field8=""test8"" field9=""test9"" field10=""test10"" />
<sample id=""3"" field =""test"" field1=""test1"" field2=""test2"" field3=""test3"" field4=""test4"" field5=""test5"" field6=""test6"" field7=""test7"" field8=""test8"" field9=""test9"" field10=""test10"" />
...
和我试图使用DataSet/DataView将其加载到WPF DataGrid中。果然,OutOfMemoryException异常试图绑定到本作,所以当被解雇:
<Grid x:Name="LayoutRoot">
<HeaderedContentControl Header="Sample Data">
<DataGrid
x:Name="DataGrid"
AutoGenerateColumns="True"
ItemsSource="{Binding Path=GridData, Mode=OneWay}">
</DataGrid>
</HeaderedContentControl>
</Grid>
我尝试添加了VirtualizingStackPanel.IsVirtualizing =“真”(虽然这是默认设置),也VirtualizingStackPanel.VirtualizationMode =“回收”,但它没有帮助。
我知道这是控制数据吨,我想知道我的选择是什么。
尝试使用XML流而不是普通的XML加载。流式传输可能会帮助你摆脱内存异常 –