Windows phone开发数据绑定系列(1)--了解数据绑定
(部分内容参考MSDN文档)
数据绑定是在应用程序UI与业务逻辑之间建立连接的过程。通过数据绑定的方式实现了后台数据和前台UI元素的关联, 为用户提供了更好地交互体验。
数据绑定一般有以下几种体现方式:
1.在应用的控件中进行简单的显示数据。
2.在应用中以列表的形式进行显示一些数据,比如一个业务对象或业务对象的集合。
3.在应用中对用户从列表中选择的项目,在另一个控件中对该项目的进行详细信息展示。
数据绑定主要包含两大块:绑定源和绑定目标。
绑定目标:绑定目标需要绑定数据源时需要借助绑定对象来完成,即Binding。这个对象有三个重要属性(它们当然与绑定源,绑定目标等有关系,毕竟它是两者的中介):a、Source:字面意思就能知道指的是绑定源对象 b、RelativeSource:指定绑定源相对于绑定目标的位置来标识绑定源 c、ElementName,绑定源也是UI对象时候,设置其绑定源的的名称即可。说了这三种属性,其主要的目的就是找到绑定源,因为Binding一般会写在绑定目标中,这样只要找到绑定源就好了,这样就能把两者联系起来。这三个属性的功能就是找到绑定源。所以这三种方式指定任意一种即可,只要让中介binding找到绑定源就好了。不过事实上我们在写程序的过程中很少这么用的,微软提供了一个更加通用的方法就是:通过设置UI元素的DataContext属性来制定绑定源,这样以上三个属性都无需指定,下文我会在做些介绍。
绑定源:绑定数据的来源,一般选择比较多,比如本地数据库,远程数据库,云端数据等。
绑定目标:即从绑定源获得的数据绑定到的UI元素,绑定的目标通常是控件属性。
绑定模式:这个也很好理解,a、OneTime:仅仅一次绑定,在绑定创建时使用源数据更新目标,适用于只显示数据而不进行数据的更新。简单理解为:绑定源仅仅把数据给绑定目标一次后,两者变得毫不相关。b、OneWay:单向绑定,在绑定创建时或者源数据发生变化时更新到目标,适用于显示变化的数据。简单理解为数据源能把数据更新到绑定目标,而绑定目标的变化却不能影响到数据源。 c、TwoWay:双向绑定,在任何时候都可以同时更新源数据和目标。前两种绑定方式理解了这个相对理解就容易,通俗的讲就是绑定源和绑定目标是互通的,无论谁的变化都能够影响到对方,比如绑定源数据有变化就能马上把绑定目标的数据更新,反之一样。
绑定对象:当绑定目标需要绑定数据源时该借助什么呢?绑定对象来完成,可以比喻成中介,起了个名字:Binding。这个对象有三个重要属性(它们当然与绑定源,绑定目标等有关系,毕竟它是两者的中介):a、Source:字面意思就能知道指的是绑定源对象 b、RelativeSource:指定绑定源相对于绑定目标的位置来标识绑定源 c、ElementName,绑定源也是UI对象时候,设置其绑定源的的名称即可。说了这三种属性,其主要的目的就是找到绑定源,因为Binding一般会写在绑定目标中,这样只要找到绑定源就好了,这样就能把两者联系起来。这三个属性的功能就是找到绑定源。所以这三种方式指定任意一种即可,只要让中介binding找到绑定源就好了。不过事实上我们在写程序的过程中很少这么用的,微软提供了一个更加通用的方法就是:通过设置UI元素的DataContext属性来制定绑定源,这样以上三个属性都无需指定,下文我会在做些介绍。
Path(路径):Binding对象的一个属性,来指示绑定源对象中用以提供数据的属性。
建立数据绑定
1.在xaml代码中建立数据绑定
(1)定义源对象。
(2)在 XAML 中创建对源对象的命名空间的引用。
(3)在“Resources”节中创建源对象的实例。
(4)通过设置 Source 属性或 DataContext 属性绑定到源对象。 该元素的所有子级都继承 DataContext
2.在属性面板中建立数据绑定
3.使用代码创建绑定
(1)添加 System.Windows.Data 命名空间。
(2)定义源对象。
(3)创建要绑定到的 FrameworkElement。
(4)创建源对象的实例。
(5)创建绑定对象。
(6)对绑定对象设置绑定属性。
(7)通过设置 Source 属性或 DataContext 属性来设置绑定源。该元素的所有子级都继承 DataContext。
数据绑定的模式
每个绑定都有一个模式属性, 共有三种模式的绑定:
(1)OneTime模式:目标空间的属性只更新一次,适用于只显示数据而不进行数据的更新的数据绑定。
(2)OneWay模式:数据对象的值会同步到目标控件的属性,每当源数据发生变化时,目标控件也会更新。当目标控件发生变化时,源数据不会发生改变。
(3)TwoWay模式:绑定目标和绑定源无论哪个发生变化,双方都会同时更新数据。
Windows phone开发数据绑定系列(1)--了解数据绑定的更多相关文章
- Windows 8实例教程系列 - 数据绑定基础实例
原文:Windows 8实例教程系列 - 数据绑定基础实例 数据绑定是WPF,Silverlight以及Windows Phone应用开发中最为常用的开发技术,在基于XAML的Windows Stor ...
- Windows 8实例教程系列 - 数据绑定高级实例
原文:Windows 8实例教程系列 - 数据绑定高级实例 上篇Windows 8实例教程系列 - 数据绑定基础实例中,介绍Windows 8应用开发数据绑定基础,其中包括一些简单的数据绑定控件的使用 ...
- Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介
原文 Windows Phone 8初学者开发—第10部分:数据绑定应用程序和透视应用程序项目模板简介 原文地址: http://channel9.msdn.com/Series/Windows-Ph ...
- Windows App开发之集合控件与数据绑定
为ListView和GridView加入数据 ListView採用垂直堆叠得方式显示数据.而GridView则採用水平堆叠得方式. 长相的话嘛,它们都几乎相同. <Grid Name=" ...
- Silverlight for Windows Phone开发系列课程
Silverlight for Windows Phone开发系列课程(1):Windows Phone平台概况 课程简介:本节开始介绍系列课程的概况,包括课程内容,先决条件,学习目的 ...
- Kendo UI开发教程(16): Kendo MVVM 数据绑定(五) Events
本篇和Kendo UI开发教程(14): Kendo MVVM 数据绑定(三) Click类似,为事件绑定的一般形式.Events绑定支持将ViewModel的方法绑定到DOM元素的事件处理(如鼠标事 ...
- WCF开发实战系列四:使用Windows服务发布WCF服务
WCF开发实战系列四:使用Windows服务发布WCF服务 (原创:灰灰虫的家http://hi.baidu.com/grayworm) 上一篇文章中我们通过编写的控制台程序或WinForm程序来为本 ...
- Win10系列:VC++数据绑定
数据绑定是一种将后台数据绑定到前台控件的机制,通常用于动态地将对象或集合中所保存的数据显示到前台界面中.本节通过一个具体的示例来说明在Windows应用商店应用中如何通过数据绑定将保存在集合中的数据显 ...
- 【Xamarin开发 Android 系列 3】循序渐进的学习顺序
原文:[Xamarin开发 Android 系列 3]循序渐进的学习顺序 指定合理的学习步骤,将各个技术点进行强化.慢慢 的就从点到线 到面的飞跃,一切仅仅是时间问题,开始前,请记住,学习是最佳的投资 ...
- Windows 8实例教程系列 - 布局控制
原文:Windows 8实例教程系列 - 布局控制 与传统应用类似,Windows store应用允许开发人员通过布局控件管理应用UI. 本篇将讨论Windows8布局设计控制. Windows 8布 ...
随机推荐
- 《程序设计基础》实验题目2 c文件读取(反序列化?) 链表排序
题目: 每个学生的信息卡片包括学号.姓名和成绩三项.定义存储学生信息的单向链表的结点类型:编写函 数,由文件依次读入 n(n≥0)个学生的信息,创建一个用于管理学生信息的单向链表:编写函数,对 该链表 ...
- Vim 写 C/C++ 的配置
.vimrc 2018/08/08 更新 基本的配置,缩进显示行号等 给每个 C/C++ 文件添加头部,显示作者,文件创建时间 F5 编译执行 C/C++源代码 Ctrl + F 利用用 astyle ...
- 32.修改IK分词器源码来基于mysql热更新词库
主要知识点, 修改IK分词器源码来基于mysql热更新词库 一.IK增加新词的原因 在第32小节中学习到了直接在es的词库中增加词语,来扩充自已的词库,但是这样做有以下缺点: (1)每次添加完 ...
- Django-----中间件Cookie
Cookie: 用来跟踪用户的会话.常用的会话跟踪技术是Cookie与Session.Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份. Cookie机制 ...
- 第二节:web爬虫之lxml解析库
lxml是python的一个解析库,支持HTML和XML的解析,支持XPath解析方式,而且解析效率非常高.
- The Morning after Halloween uva1601
这道题思路还是比较清晰的,建图加bfs或双向bfs,其实后者比前者少了将近一半的时间.. 建图可以把某一点所拥有邻接点长度(数目)记录在数组0这个位置,因为这道题使用vector会超时. #inclu ...
- 激活Windows
额外的启动参数(键):/win=act – 在隐藏模式下运行程序,激活 Windows 并退出程序./ofs=act – 在隐藏模式下运行程序,激活 Office 并退出程序./wingvlk – 在 ...
- [bzoj2743][HEOI2012]采花_树状数组
采花 bzoj-2743 HEOI-2012 题目大意:给定n朵花,每朵花有一个种类,m次询问:一段区间中至少出现两朵花的种类的个数. 注释:$1\le n,m\le10^6$. 想法:这个题超级像H ...
- ORACLE11G设置IP訪问限制
出于数据安全考虑,对oracle数据库的IP做一些限制,仅仅有固定的IP才干訪问. 改动$JAVA_HOME/NETWORK/ADMIN/sqlnet.ora文件 添加下面内容(红色表示凝视): #开 ...
- 摘:SQL 常见题练习
--.学生表 Student(SId,Sname,Sage,Ssex) --SId 学生编号,Sname 学生姓名,Sage 出生年月,Ssex 学生性别 --.课程表 Course(CId,Cnam ...