数据绑定(翻译)

数据

中文信息:

           数据绑定和控件的介绍

当微软公司开发出窗体控件和网页控件时,它就拼命的实现数据绑定.当时还是使用的是vb,他们就进行了大篇幅的功能程序编辑.

最有效的数据绑定不是我们说的dataset,而是对象,结构和对象集.数据绑定有个显著的特点:网页中实现数据绑定的控件,我们不要对它进行其他的操作.数据绑定后只有读的操作,没其他的操作,也就是说,控件把数据源的信息拿过了,只是用用的,不能操作.而我们在建其他的对象或UI时,不需要关心它,而它的操作是一目了然的.

WINDOWS窗体控件数据绑定可以读和写,而且有的操作更复杂.这样一来,这些数据从数据库中调出,并在我们的UI控件中显示,一旦UI控件的数据改变,数据库中的数据也随着它改变,当然这些操作不需要我们来完成,不过数据的更改难免会让我们写更多的代码.由于上面的特点,我们可以把它的这些特点用到我们的企业和类集里去,这些特点包括:

1.拥有UI等数据的修改.

2.可以使的DATAGRID数据进行正确的绑定.

3.在DATAGRID中子对象可以进行编辑.

4.在DATAGRID中可以动态的增加或删除子对象.

对于一个简单的对象,当我们修改正确的数据时,我可以通过事件来完成对窗体数据的绑定.

通过这些事件,我们可以使UI的数据随我们的修改而在任何时候进行更新.

在UI中一旦其正确的规则被加入的数据破坏,那我们必须知道如何去修改.同样使用不确当的事件来绑定数据,会使绑定出错.

另外,在这里我们还有许多可选择的特点可以用.例如,DATAGRID就是一个常用的绑定控件.件通过正确的使用我们的集,我们可以使DATAGRID控件更加的自能化.

我们可以一起使用IbindingList 和DATAGRID ,那样会更方便.

最后在集使用当中有着比较显著的特点,我们称作为子对象.子对象可以使用IEDITABLEOBJECT使的DATAGRID在数据编辑上更加的方便.当有无效数据的时候,子对象可以使用IDATAERRINFO,从而使DATAGRID对出错的地方用下画线标出来.

总之,我们只需要写一点点的代码就可以使DATAGRID的优点发挥的淋漓尽致.

举例一个窗口绑定的例子:

一个窗体上的控件的属性绑定不是复杂的,举个例子,看看下面的简单的order类:
Public Class Order
Private mID As String = ""
Private mCustomer As String = ""
Public Property ID() As String
Get
Return mID
End Get
Set(ByVal Value As String)
mID = Value
End Set
End Property
Public Property Customer() As String
Get
Return mCustomer
End Get
Set(ByVal Value As String)
mCustomer = Value
End Set
End Property
End Class
这里的比较特殊的代码是:

Private mID As String = ""
Private mCustomer As String = ""
注意在这里变量的初始化是没有值的,在Visual Basic .NET中当他们声明时就自动初始化了,所以他们不是很特殊.

由于我们不这样做的话,数据绑定就会失败.这表明变量的自动初始化不会发生在数据绑定到对象的时候,没有初始化的变量在绑定数据的时候会抛出例外.

所以变量的声明必须在数据绑定之前,这意味着我们在数据绑定前对变量正确的初始化,会让我避免产生例外

我们建一个窗体,在它load 的时候把数据绑定到它控件的属性上去.

绑定的代码如下:

Private mOrder As Order
Private Sub OrderEntry_Load(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
mOrder = New Order()
txtID.DataBindings.Add("Text", mOrder, "ID")
txtCustomer.DataBindings.Add("Text", mOrder, "Customer")
End Sub
事实上每个窗体上的控件都有一个数据绑定的连接.这个连接库包含一系列数据绑定的属性和

数据源的属性.更有趣的是我们从一个数据源绑定几个不同的控件,同样我也可以把多个数据源绑定到不同的控件属性上.

通过简单的数据绑定代码我们就可以创建很多复杂的拥护接口.例如:用上面例子的代码,我们把一个SAVE按钮的enabled 属性绑定到一个business对象的ISVALID属性上.当对象准备保存的时候这个按钮控件对用户来说是有效的.

记住这种数据绑定不是直接的,不光是数据从对象显示到窗口上,而且用户的对数据的更改是自动返回的.这些都是在用户浏览每个区域的时候发生,例如: 当控件失去焦点时,我们的用户改变的TXTID控件的VALUE的值,这个数据更新到对象上去,这些数据都是通过SET属性来实现的.我们不需做其他的数据绑定操作,系统通过它的属性自动取得数据.

时间: 2024-11-01 16:02:53

数据绑定(翻译)的相关文章

[翻译]Windows Phone(Silverlight) 控件数据绑定

UI效果 "图1"   开始 1.打开Visual Studio创建一个名为DataBinding的Windows Phone应用程序. 2.添加一个用于绑定数据的类.在"解决方案"上右键项目选择"添加->新建项->类",命名为"Person.cs". Person包括以下属性,这些属性用于绑定UI视图.Person包括以一个枚举属性和其他属性.如下代码. public class Person { public

数据绑定(二)(翻译)

数据 改变属性的注意事项: 现在我们知道了数据绑定,下面我们看看对象如何支持自动属性改变. 当我们在程序中改变对象的数据,很难让我们知道控件的改变.UI和对象可以得到我们看不到的正确数据. 我们需要的是对象在任何时间提醒UI,属性值的改变.而这些我们可以通过事件的声明来 体现,当数据绑定时,数据绑定是根据事件的的属性改变,这些属性是对象的属性名称. 举例:我们刚才的ORDER类定义了一个ID属性,当数据绑定到控件时,绑定就开始倾听 ID属性改变这个事件.ID改变事件发生,则相应的对象也改变. 我

《Programming WPF》翻译 第4章 2.数据绑定

我们手动编写代码保证UI和数据同步.有效将两组属性隐式的绑定在一起, 一组来自Person对象,另一组来自显示Person对象的控件.数据绑定用于显式的 将属性从一个对象绑定到另一个,保持它们的同步,并转换为适当的类型,正如 图4-7所示. 图4-7 4.2.1 绑定 取代以在代码中手动设置TextBox对象的Text属性并保证它们是最新的,数据 绑定允许我们使用Binding对象的实例来设置Text属性,正如示例4-8所示. 示例4-8 <TextBox > <TextBox.Text

《Programming WPF》翻译 第4章 1.不使用数据绑定

考虑一个非常简单的应用程序:遍及一个人的名字和年龄,正如图4-1所示: 图4-1 图4-1可以实现为一个简单的xaml如示例4-1. 示例4-1 <!-- Window1.xaml --> <Window > <Grid> <TextBlock >Name:</TextBlock> <TextBox x:Name="nameTextBox" /> <TextBlock >Age:</TextBlo

实战数据绑定:基于客户端的分页导航

分页|客户端|数据 思路:用纯JS的方法,只能通过判断当前页面的文件名,然后算出上下页地址,首页和尾页需要在脚本中配置好,最后生成导航代码.用数据绑定的方法则要简单得多,设定dataPageSize,然后用 firstPage() .previousPage() .nextPage() 和 lastPage() 方法翻页. 代码示例: 1. 纯JS的,翻页导航的依据是文件名 page.js脚本文件代码 Number.prototype.add0 = function(){ //对数字类型的扩展,

Flex Quick Starts中文翻译(一)

中文 前言 Adobe  Flex  2.0 是一项新兴的技术,它基于强大的已经很成熟的 J2EE 平台,具有一些很强大并 且迷人的特性,比如 Flash 的表现能力,丰富的媒体和离线能力等等.Flex 2.0 虽然在前台表现为 Flash,却是更多地面向开发者(developer),而不是设计者(designer).你只需要编写代码就 可以使用各种控件做出很漂亮的东西,这是许多缺少艺术细胞的开发人员向往的事情.而且 Flex 除去了 Flash 中一些令很多人费解的东西,比如帧,元件等(我本人

WebForms VS. MVC(翻译)

原文:WebForms VS. MVC(翻译) (本文翻译自CodeProject上阿三写的一篇文章,原文地址:http://www.codeproject.com/Articles/528117/WebForms-vs-MVC,讲了有关ASP.ASP.NET WebForms以及ASP.NET MVC三种技术,这篇文章有助于ASP.NET初学者理解一些基本概念.) 介绍: 我很早之前就开始从事Asp.NET的开发工作,我也比较喜欢使用WebForms来开发Web程序.在2008年,微软推出了一

jQuery模板技术和数据绑定实现代码_jquery

好消息来了,微软开发出了这样的框架,这是对jQuery的一个扩展,从此以后要在浏览器上动态显示服务器端Web Service返回的数据将变得如同用服务器端控件显示数据一样容易. 这个技术就叫jQuery templates and data linking ,这是微软对jQuery做的一个扩展.这种扩展需要jQuery官方的审核,然后才能被包含在jQuery中.据ScottGu的博客上说,此扩展正在等待审核阶段.但是这些功能却是非常强大而且实用,我就先把它转过来了,先睹为快. 在编写AJAX应用

构建多语言的 WPF 应用 【已翻译100%】(1/2)

下载源代码 - 84.4 KB 导言 在WPF应用程序中搭建多语言支持(Multilingual Support)是我最近在做的一件事,对于不使用英语的人士而言,此举提高了程序的可用性.实现起来要完成以下目标: 一个版本容纳多种语言. 这就意味着不要创建单独的英语版本.法语版本.日语版本等等. 许多电子产品(例如电视和数码相机)在同一模块中支持多语言.你不需要购买不同模块或给软件打补丁来得到与默认设置不同的语言 允许在运行时切换接口语言. 这就是说不需要关闭应用程序并配置操作系统环境,一切都交给