window phone list box使用收藏,mvvm ItemsControl数据绑定
2012-02-16 09:37
288 查看
具体case是,最近做的window phone7项目在异步加载数据并用itemsControl展示时,ItemsControl模板渲染慢,渲染事件几乎是异步加载数据事件的3倍;为了解决这个问题尝试多种方法但最终依旧不明显;无意间看到了下面的几篇文章,获益匪浅,很轻松的解决了这个问题;欣喜之至便将其收藏和大家分享;
1.首先关于列表控件性能统计分析
作者最后推荐使用LazyListBox,一种在滑动时使用简单模板,在停止滑动时再换为正常(即复杂UI)的模板,具体的可以参考 http://blogs.msdn.com/b/ptorr/archive/2010/10/12/procrastination-ftw-lazylistbox-should-improve-your-scrolling-performance-and-responsiveness.aspx
2.关于UI 渲染缓慢的问题 首先我们的项目用的是MVVM框架,绑定到UI Itemscontrol的是一个ObversableCollection<T>对象,然后UI给ItemsControl设置ItemTemplate,ViewModel里通过异步加载数据并添加到ObversableCollection中,因为ObversableCollection实现了接口INotifyPropertyChanged接口,所以向ObversableCollection里添加或删除Item都会由UI自动更新列表中的项,但是问题是当循环向ObversableCollection中添加数据时,UI渲染就变得非常缓慢;开始本人也以为是没添加一项就会更新UI,可是实际结果却是基本等到所有想都添加完了以后UI才会渲染显示,这就是问题根本所在,加入我又50条或更多数据,页面基本卡了;然后看了这篇文章List Scroll with Items as Image/Description from web - Bing Image Search Experiment作者详细介绍了具体原因并提供了解决办法,哇困扰的问题终于解决了,收藏在这里了。
alexis的对各列表控件性能评估
ListBox Scroll Performance
Windows Phone 7 lists scroll smoothly and consistently
List Scroll with Items as Image/Description from web
List Scroll with Items as Image/Description from web - Bing Image Search Experiment一个window phone7开发者必看的blog: http://blogs.msdn.com/b/slmperf/
相关文章推荐
- 数据绑定应该使用 BindingSource 类 而不是使用ListControl.databingding
- 使用 MVVMLight 绑定数据
- 数据绑定(五)使用集合对象作为列表控件的ItemsSource
- WPF使用MVVM完成DataGrid数据绑定带全选
- WPF中使用MVVM模式进行简单的数据绑定
- [Aaronyang] 写给自己的WPF4.5 笔记7[三巴掌-ItemsControl数据绑定详解与binding二次处理 3/3]
- Silverlight中使用MVVM(9)-绑定Enum类型数据
- ASP.NET DEMO Ⅳ : 使用数据源控件将数据绑定到 ListControl 上
- 使用 MVVMLight 绑定数据
- uwp开发:MVVM模式和数据绑定结合使用实战示例
- 豆瓣电台WP7客户端 MVVM重构记录之使用MVVM Light实现数据绑定
- 使用 MVVMLight 绑定数据(转)
- MVVM模式WPF的ComboBox数据绑定,使用Dictionary作为数据源
- Xamarin XAML语言教程使用Progress属性数据绑定设置进度条进度
- 在ascx中使用DropDownList绑定数据页面刷新时变空的问题
- 利用 JavaScript 数据绑定实现一个简单的 MVVM 库
- jQuery中动态生成数据使用on绑定无效的问题;
- Eclipse 中的 JFace 数据绑定,第 3 部分: 使用高级功能(16/19)
- 使用Repeater实现自定义多列数据绑定
- 使用脏检查机制实现数据的双向绑定