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布 ...
随机推荐
- c# 图片资料
- 救济金发放(The Dole Queue, UVa 133)
n(n<20)个人站成一圈,逆时针编号为1-n.有两个官员,A从1开始逆时针数,B从n开 始顺时针数.在每一轮中,官员A数k个就停下来,官员B数m个就停下来(注意有可能两个 官员停在同一个人上) ...
- Shell脚本备份文件
使用crontab 定时备份文件 1. 编辑crontab规则 2. 编写shell脚本 cp -R "/data/www/code" "/home/backup/cod ...
- wget扒网站
wget神奇操作 整站复制 只限静态网页 wget -P 指定下载路径 -p 获取显示HTML页面所需的所有图像 -k 使链接指向本地文件 -H 递归时转到外部主机. wget --mirro ...
- 34.分组聚合操作—bucket
主要知识点: 学习聚合知识 一.准备数据 1.家电卖场案例背景建立index 以一个家电卖场中的电视销售数据为背景,来对各种品牌,各种颜色的电视的销量和销售额,进行各种各样角度的分析 ...
- Python-基本语法元素
#TempConvert.py TempStr = input("请输入带有符号的温度值: ") if TempStr[-1] in ['F', 'f']: C = (eval(T ...
- HBase(0.96)新的Java API操作
package test; import java.io.IOException; import org.apache.hadoop.conf.Configuration; import org.ap ...
- hdu_2925_Musical Chairs_201311121643
Musical Chairs Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 32768/32768 K (Java/Others) T ...
- 通过urllib2抓取网页内容(1)
一.urllib2发送请求 import urllib2 url = 'http://www.baidu.com' req = urllib2.Request(url) response = urll ...
- PHP array_intersect_assoc()
定义和用法 array_intersect_assoc() 函数返回两个或多个数组的交集数组. 与 array_intersect() 函数 不同的是,本函数除了比较键值,还比较键名.返回的数组中元素 ...