Windows phone通过linq创建ObservableCollection绑定
来源:互联网 发布:圆形沉井计算软件 编辑:程序博客网 时间:2024/06/06 05:28
任务:
List绑定ObservableCollection
前置任务:
1.WebClient下载Json
2.反序列化json成对象
问题:
对象不能直接绑定到ListBox,需要重新组织一下对象
一.第一版本
var listBindModels = from model in apiModel.results select new ListBindModel() { Title = model.obj.title, AddTime = model.obj.addtime, AvatarUrl = model.sender.avatar }; ListSnapShot.ItemsSource = listBindModels;
二.引发异常
“Title”引发了“System.UnauthorizedAccessException”类型的异常'
kada~~这个情况我见多了。WP里面非UI线程修改UI线程就会这样,加一个
Deployment.Current.Dispatcher.BeginInvoke 就可以了,就像这样:
Deployment.Current.Dispatcher.BeginInvoke(() => { var listBindModels = from model in apiModel.results select new ListBindModel() { Title = model.obj.title, AddTime = model.obj.addtime, AvatarUrl = model.sender.avatar }; }); ListSnapShot.ItemsSource = listBindModels;
三.一样的异常
搞了一个小时没看出为什么
想了一下,LINQ是有延迟执行的,所以问题不是在LINQ语言,应该是下一句绑定上。
另外,绑定应该用ObservableCollection,但是LINQ出来的是IEnumerable,所以还要转化一下。
参考了一下网上的代码,最后这样:
IEnumerable To ObservableCollection :
public static ObservableCollection<T> ToObservableCollection<T>(this IEnumerable<T> enumerableList) { if (enumerableList != null) { //create an emtpy observable collection object var observableCollection = new ObservableCollection<T>(); //loop through all the records and add to observable collection object foreach (T item in enumerableList) observableCollection.Add(item); //return the populated observable collection return observableCollection; } return null; }
List 绑定:
Deployment.Current.Dispatcher.BeginInvoke(() => { var listBindModels = (from model in apiModel.results select new ListBindModel() { Title = model.obj.title, AddTime = model.obj.addtime, AvatarUrl = model.sender.avatar }).ToObservableCollection(); ListSnapShot.ItemsSource = listBindModels; });
这样的方法感觉比较笨,性能也不高,有待改进啊!
- Windows phone通过linq创建ObservableCollection绑定
- Windows Phone 通过相应的进度条来绑定
- windows phone:数据绑定
- windows phone通过加载xaml动态创建控件
- windows phone中的数据绑定
- WINDOWS PHONE 数据绑定笔记
- windows phone:数据绑定(二)
- windows phone:数据绑定思想
- Windows Phone 创建磁贴
- Windows Phone 7: MVVM之命令绑定
- Windows phone 7中的动态绑定例子
- 《Windows Phone 7程序设计》样章-《数据绑定》
- windows phone:AppBar中使用命令绑定
- Windows Phone 动态绑定小技巧
- Windows Phone 8.1中数据绑定之一
- Windows Phone 8.1中绑定数据转换
- Windows Phone 8.1绑定数据集合
- 如何使用Linq语句初始化ObservableCollection
- OSG绘制大量文本的解决方法:文本绘制的纹理活字印刷术
- V4L2驱动程序架构
- SGA--Redo Log Buffer & Shared Pool
- android中求区域内两个坐标之间的距离的实现
- 搭建Hadoop时候遇到的一些问题以及解决方法
- Windows phone通过linq创建ObservableCollection绑定
- Java创建ZIP压缩文件
- (转载)ArcGIS Flex API配合LibertyGISI加载SHP文件
- html按钮button加超链接
- 淘宝API open淘宝调用 二次开发源代码
- JDK自带的转码工具native2ascii的使用方法详解
- OpenGLES 1.1教程(二)-简单图形的绘制
- 关于font:14px/25px Arial 的所表达的意思
- 试卷正确答案问题