博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Windows Phone 实用开发技巧(29):动态绑定Pivot
阅读量:6907 次
发布时间:2019-06-27

本文共 1687 字,大约阅读时间需要 5 分钟。

前几天有个网友问我如何动态绑定Pivot项,即PiovtItem的项是动态的,PivotItem中的数据也是动态的。这个使用MVVM模式可以很方便的实现,在ViewModel中设置一个集合表示当前有多少个Item,集合中的类中含有当前PivotItem中的数据源。下面以一个简单的demo来演示下:

先来看看XAML中是怎么去绑定的

Pivot的数据源绑定是ViewModel中的BindData,ItemTemplate表示PivotItem的模板,HeaderTemplate表示PivotItem中Header模板,这两个模板分别如下:

HeaderTemplate十分简单,就使用一个TextBlock表示当前的标题。Pivot的ItemTemplate里面放置一个ListBox,数据源为BindData下的ListData

ViewModel中的数据源:

private ObservableCollection
_bindData;public ObservableCollection
BindData{ get { return _bindData; } set { _bindData = value; RaisePropertyChanged("BindData"); }}

TestPivot即自己定义的类,含有PiovtHeader和PivotItem数据源的类:

public class TestPivot{    ///     /// property for pivot header    ///     public string Name { get; set; }    ///     /// data for pivot item datasource(eg.listbox)    ///     public List
ListData { get; set; }}

ok,绑定已经建立好了,现在就是如何初始化数据源了,为了简单起见,以最简单的循环生成绑定源数据:

public void AddData(int size){    BindData = new ObservableCollection
(); for (int i = 0; i < size; i++) { TestPivot t = new TestPivot(); t.Name = "piovt item" + i; t.ListData = new List
(); for (int j = 0; j < 10; j++) { t.ListData.Add("List item"+j); } BindData.Add(t); }}

其中size表示当前有几个PivotItem,这里Pivot数据源可以是同步方式也可以以异步方式,只要TestPivot实现NotifyPropertyChanged,并且属性ListData通知改变即可。

你可以从找到源代码, Hope that helps.

转载地址:http://osgdl.baihongyu.com/

你可能感兴趣的文章
阿里程序员工作小技巧:理解CPU分支预测,提高代码效率
查看>>
反应式服务的性能应该如何测试?
查看>>
Timehop为什么使用Go替代Rails
查看>>
Android之JSON格式数据解析
查看>>
HTTPS简单学习
查看>>
IOS博客项目搭建-23-SQLite数据库学习
查看>>
使用 ajaxFileUpload 进行图片上传
查看>>
groovy脚本
查看>>
Android安全开发之Provider组件安全
查看>>
ECMAScript6 新特性——“函数的扩展”
查看>>
CentOS7之Scrapy爬虫部署
查看>>
深入浅出JavaScript:作用域
查看>>
3Sum Closest
查看>>
在全屏滚动页面下实现鼠标滚轮的子级交互
查看>>
GLG Widgets v3.5新增数据过滤器【附下载】
查看>>
崛地而起!未来车联网 App 路在何方?
查看>>
Intellij IDEA中如何配置Tomcat和项目?
查看>>
64 位设备上抛弃 32 位安卓应用,谷歌公布了具体日期
查看>>
图解梯度下降背后的数学原理
查看>>
linux禁止root用户直接登录sshd并修改默认端口
查看>>