上面的三个文本框都用于保持当前Account对象的数据。它们分别叫txtAccountID、txtCustomerName和txtBalance.显示Load的按钮叫btnLoad,用于载入帐号集合。另两个按钮在记录间导航,分别叫btnBack 和 btnForward.
帐号对象集合可以保持在ArrayList(数组列表)中,因此下面一行代码应该在窗体代码的最前面:
Dim colAccounts As ArrayList
下面是Load方法的Click事件代码。它建立了一些Account对象并把它们放入一个集合中,接着把该集合绑定到文本框。
colAccounts = New ArrayList()
colAccounts.Add(New Account(1, "ABC Company", 10))
colAccounts.Add(New Account(2, "XYZ, Inc.", -10))
colAccounts.Add(New Account(3, "MNP Limited", 0))
txtAccountID.DataBindings.Add(New _
Binding("Text", colAccounts, "AccountID"))
txtCustomerName.DataBindings.Add(New _
Binding("Text", colAccounts, "CustomerName"))
txtBalance.DataBindings.Add(New _
Binding("Text", colAccounts, "Balance"))
txtBalance.DataBindings.Add(New _
Binding("BackColor", colAccounts, "BackColor")) |
注意最后两行。txtBalance的Text属性绑定到一个帐号的Balance属性,并且该控件的BackColor属性绑定到帐号对象的BackColor属性。它演示了。NET框架组件绑定一个以上属性到不同数据项。
现在点击btnBack的Click事件,填入一下代码:
If Me.BindingContext(colAccounts).Position > 0 Then
Me.BindingContext(colAccounts).Position -= 1
End If
在btnForward的Click事件中写入以下代码:
If Me.BindingContext(colAccounts).Position < colAccounts.Count - 1 Then
Me.BindingContext(colAccounts).Position += 1
End If |
启动项目并点击Load按钮。ABC公司的记录出现在文本框中。点击向前按钮,就是XYZ公司记录,同时,txtBalance的背景色变为橙红色(见图6)。
图6.数据绑定窗体显示了一个负平衡记录,引起Balance字段的背景色不同
过了该帐号记录后,该文本框的背景颜色将变回正常色。
Account类不是特别复杂。但是这个例子最少让你看到了怎样绑定不同属性(例如控件颜色)。

