Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/reporting-services/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows phone 7 WP7列表框如何显示加载更多项目_Windows Phone 7_Listbox_Virtualizingstackpanel - Fatal编程技术网

Windows phone 7 WP7列表框如何显示加载更多项目

Windows phone 7 WP7列表框如何显示加载更多项目,windows-phone-7,listbox,virtualizingstackpanel,Windows Phone 7,Listbox,Virtualizingstackpanel,我知道Windows Phone 7列表框默认使用虚拟化StackPanel来优化内存 但是,当我向视图模型添加更多项时,列表框不会显示这些新项。我必须向上滚动,然后向下滚动才能看到它们 我的视图模型实现了IList 很多文章都有这个问题,比如 如何解决此问题?添加更多项后,viewmodel是否实现接口并引发PropertyChanged事件 更好的解决方案是使绑定的viewmodel属性与。在集合中添加/删除项目时,此类将自动引发PropertyChanged事件。我已经使用了INotify

我知道Windows Phone 7列表框默认使用
虚拟化StackPanel
来优化内存

但是,当我向视图模型添加更多项时,列表框不会显示这些新项。我必须向上滚动,然后向下滚动才能看到它们

我的视图模型实现了IList

很多文章都有这个问题,比如


如何解决此问题?

添加更多项后,viewmodel是否实现接口并引发PropertyChanged事件


更好的解决方案是使绑定的viewmodel属性与。在集合中添加/删除项目时,此类将自动引发PropertyChanged事件。

我已经使用了INotifyPropertyChanged,听说加载更多项目会破坏虚拟化,我们如何解决此问题?您可以处理CleanUpVirtualizedItemEvent()并取消重新虚拟化。您可能还希望查看将虚拟化模式()设置为循环使用。为什么要取消重新虚拟化?如何取消?如果我在viewmodel中添加更多项,listbox会继续虚拟化还是破坏它?我有点困惑。你说你已经实现了INotifyPropertyChanged。添加新项目时,它是否按预期工作,而不必在添加项目和引发PropertyChanged事件时向上滚动,然后向下滚动?你只是担心虚拟化不能正常工作?当我使用ObservableCollection作为绑定源时,向这个集合添加更多的项,我看到占用的内存增加了,这意味着UI虚拟化不能正常工作。因此,我创建了一个实现IList和INotifyPropertyChanged的类,内存不像以前那么高,但我必须向上滚动,然后向下滚动以查看新项目:(