我的应用程序有两个列表
public ObservableCollection<StreamItemViewModel> SearchStreamItems { get; private set; }
public ObservableCollection<StreamItemViewModel> MyStreamItems { get; private set; }
每个都是一个ListBox
的数据源。每次单击按钮more
时,应用程序都会加载100个新项目,点击几下就会抛出OutOfMemoryException
。
有没有办法避免异常?或者我该怎么办?停止加载更多更新?
答案 0 :(得分:3)
而不是加载所有既不可能也不是真正需要我会使用滑动窗口 - 当你达到某个最大列表大小(比如300项)时你会自动删除前100项当您将下100个项目添加到底部时。
如果您在更新后立即滚动,则用户甚至不会注意到这一点。
答案 1 :(得分:0)
这取决于当它无法加载更多时你想要它做什么。你可以使用像这样的try catch来忽略它:
try
{
... load more
}
catch (OutOfMemoryException)
{
... ignore or clear out old ones, then call call again
}
或者你可以减少你加载的物体,以便更适合。这取决于您认为应该是允许/接受的行为。