摘要: 【背景】很多时候在做WP开发的过程中会遇到数据需要分页获取,根据微软官方的推荐方式,建议实现为Market中类似的体验,即滑动到列表的底部的时候加载更多的数据。 这一需求在早起WP7.1时代实现起来是很费劲的,需要借助WP Toolkit 中的LongListSelector,而自从LLS被微软扶正之后这一需求的实现有了更官方的方法。 【实现思路】LLS传承了Listbox UI虚拟化的特性,所谓UI虚拟化即列表数据源中的数据不会一次性根据ItemTemplete将所有数据UI化,而是随着列表的滑动,随时将数据UI化,或者将UI化的数据释放掉。举例说明下更直观: 比如,LLS数据源中有1W条. 阅读全文
posted @ 2013-10-16 07:18 孤狼晖 阅读(1872) 评论(5) 推荐(2) 编辑
摘要: 最近工作中常常被问到如何降低WP内存使用,便再一次开始研究内存问题,首先发现了LonglistSelector使用的一个常见问题:概述若将Longlistselector 控件的ItemsSource设置为ViewModel中的一个ObservableCollection集合,那么应该值得注意内存问题。 问题的产生 下面的demo中,模拟了如下场景ItemSource Binding到了Page以外的静态ObservableCollection上。那么如果我们的程序结构如果是 MainPage->LoginPage 的话,来回在MainPage和LoginPage间切换就会导致内存中有多 阅读全文
posted @ 2013-08-16 10:40 孤狼晖 阅读(1680) 评论(8) 推荐(1) 编辑
摘要: 背景Windows Phone 8 开发过程中Tombstone的处理真是让我们又爱又恨,它能让程序看起来一直在运行。但处理墓碑却是个很麻烦的事情,传统的方式我们需要在程序Deactived事件触发后,将需要保存的状态放到State中,然后用户回来后再加载出来。而如果我们的程序采用MVVM架构,情况会更复杂,有多复杂相信每个人都有所体会。话不多说,让我们继续看CM框架中神奇的墓碑处理。 从... 阅读全文
posted @ 2013-06-07 16:44 孤狼晖 阅读(1261) 评论(2) 推荐(0) 编辑
摘要: 背景对于MVVM 架构的WP程序,一个很关键的问题就是导航,以及导航传参。有过经验的人很清楚WP导航只能在View中进行,并且导航参数也只能在NavigatedTo等View的事件中获取,如此我们便不得不在xaml.cs文件中加上处理,以获取导航参数然后再通过导航参数构造ViewModel。这个过程很痛苦,因为我们不得不再两个文件中来回切换来看我们的逻辑代码。 那么接下来我们看下CM作者的... 阅读全文
posted @ 2013-06-06 14:26 孤狼晖 阅读(1975) 评论(0) 推荐(1) 编辑
摘要: 介绍MVVM的出现给WPF Silverlight程序定义了程序的框架,MVVM可以解决业务层和UI层的耦合问题,更多优点不再赘述。在WP手机端,很多工程也都采用MVVM进行架构,比较常见的工具集是MVVM Light Toolkit 。它被应用在很多已知WP项目中,也有一些自己实现的MVVM架构工具多数也都基于此。而我们今天要说的是Caliburn Micro这个用于MVVM架构的Framework。 首先对比下MVVM Light Toolkit 和Caliburn Micro: MVVM LightCaliburn MicroView和ViewModel之间的通信事件:通过EventT. 阅读全文
posted @ 2013-06-05 11:52 孤狼晖 阅读(3299) 评论(4) 推荐(3) 编辑
摘要: 背景WP系统一向以系统流畅著称,这其中主要归功系统内程序页面间跳转的流畅动画。但很可惜的是sdk本身并没有对应用内使用这些动画效果进行支持。纵观国内WP market 加入页面跳转动画效果的APP也很少(主要原因在于多数APP都在赶功能=。=)但是就移动端而言用户体验应该是时刻关注的重点,因此为程序加些动画效果会让整个APP更加生动。 对于页面跳转动画的实现Toolkit中有支持,实际... 阅读全文
posted @ 2013-06-04 16:22 孤狼晖 阅读(3043) 评论(2) 推荐(0) 编辑
摘要: 承接上文继续讲解WP8 Fast Resume的实现 (二)存在Second Tile 的情况 我们先定义我们的程序结构如下: 导航关系为:MainPage->Page1->Page2MainPage可以将Page2 Pin到桌面,如此在桌面上存在两个程序入口:1、主图标,点击后启动客户端进入MainPage2、第二图标,点击后会直接进入Page2上述这种场景在多数程序中会存在,对于这种情况,如果需要启动Fast Resume 功能,之前的处理会存在问题当用户浏览到Page1然后按Home切出,再次点击第二图标时,程序会取消到Page2的导航回到Page1,这在逻辑上是不正确的,所 阅读全文
posted @ 2013-01-30 15:44 孤狼晖 阅读(1280) 评论(1) 推荐(2) 编辑
摘要: (一)概述Windows phone 8 新添加的很重要的一个特性就是 Fast Resume。这个特性应用的场景如下: 对于wp7而言,用户浏览一段时间app内容后,如果从程序菜单栏点击app图标,那么程序会重新从Mainpage开始启动,而在wp8我们可根据业务需求,重新点击app图标后,回到之前浏览的页面。引用madn上的图片来直观的说明下: 图中用户进入程序后,进入Page1... 阅读全文
posted @ 2013-01-29 18:20 孤狼晖 阅读(2490) 评论(5) 推荐(4) 编辑
摘要: Windows phone 8 这个新平台带给我们的惊喜还是很多的,其中内建支持中文语音命令,这点让人印象深刻. 我们可以通过编码为WP8程序添加语音交互的功能.比如场景如下: 拿人人客户端举例:用户可以任意界面长按home,然后对着手机说:"人人 发状态"那么这种场景下如果微博内部进行了处理,便可以相应并进入状态发布页面。如此是很棒的用户体验。那么我们要如何处理呢? 下面我们来模拟下这个场景(事实上人人客户端确实支持语音命令:-)) 实现 1、配置语音控制文件 需要配置如下xml文件:<?xml version="1.0" encoding=&q 阅读全文
posted @ 2013-01-24 11:16 孤狼晖 阅读(2003) 评论(2) 推荐(1) 编辑
摘要: 不得不说Windows phone 改为NT内核之后相当的给力,ProximityDevice就是内核里面的东西,在Windows命名空间下。Proximity cannot be tested using WindowsPhoneEmulator. You should test proximity using a WindowsPhone8 device.Bluetooth can... 阅读全文
posted @ 2012-11-16 09:37 孤狼晖 阅读(1836) 评论(1) 推荐(0) 编辑