在我的C#WPF应用程序中,我有一个包含约900000个条目的对象列表。有很多条目的WPF ListView:System.OutOfMemoryException
我想在列表视图中显示这些条目。为此,我创建一个如下窗口:
System.Windows.Window myWin = new System.Windows.Window();
myWin.Content = new myResult();
myWin.Title = "Result";
myWin.Show();
该列表存储在ViewModel中。该XAML的样子:
Ein Ausnahmefehler des Typs "System.OutOfMemoryException" ist in PresentationCore.dll aufgetreten.
有没有在为ListView项的限制:
<ListView
x:Name="myListView"
ItemsSource="{Binding ListSummary}"
>
<ListView.View>
...
在行myWin.Show()
以下异常程序冻结和节目吗?我知道900,000条目似乎非常多,但这是我商业案例中常见的条目数量。
显然你没有足够的内存来处理那么多项目。确保您没有禁用UI虚拟化。 – mm8
可能有多个问题。看看这里:https://stackoverflow.com/questions/5326904/finding-the-true-memory-footprint-of-a-windows-application/5407911#5407911 –
也许是时候开始分页/层次数据/ [/ “在这里不显示整个列表”技术]。无论那些900000项目是什么,用户永远不会需要在单个程序运行期间查看所有这些项目(假定程序不会在没有重新启动的情况下永远运行),所以最好的选择是了解用户将会实际上是在寻找他何时开始滚动浏览这些荒谬可笑的项目列表。 – grek40