数据绑定能应用于控件的任何属性。我看到过很多人提到能够绑定文本框的背景颜色到数据项,举个例子,超期的帐号的背景色显示红色。
但是如果你试图使用数据集或者数据表实现该功能,将会遇到问题。数据行只能保持受到限制的数据类型,并且不支持Color类型。如果你不能把颜色存储在数据中怎么能绑定颜色呢?
有些途径可以解决这个问题,但是最简单的是用绑定到自定义数据对象代替绑定到数据表。自定义业务对象的属性可能是Color型的,这样的属性能绑定到控件的BackColor属性。
为了演示,我定义了下面的自定义事务对象:
Public Class Account
Dim m_nAccountID As Integer
Dim m_sCustomerName As String
Dim m_dblBalance As Double
Public Sub New(ByVal nAccountID As Integer, ByVal sCustomerName As String, _ByVal dblBalance As Double)
Me.AccountID = nAccountID
Me.CustomerName = sCustomerName
Me.Balance = dblBalance
End Sub
Public Property AccountID() As Integer
Get
Return m_nAccountID
End Get
Set(ByVal Value As Integer)
m_nAccountID = Value
End Set
End Property
Public Property CustomerName() As String
Get
Return m_sCustomerName
End Get
Set(ByVal Value As String)
m_sCustomerName = Value
End Set
End Property
Public Property Balance() As Double
Get
Return m_dblBalance
End Get
Set(ByVal Value As Double)
m_dblBalance = Value
End Set
End Property
Public ReadOnly Property BackColor() As Color
Get
If m_dblBalance < 0 Then
Return Color.Salmon
Else
Return SystemColors.Window
End If
End Get
End Property
End Class |
注意只读的BackColor属性从Balance属性中得到值,并且为负平衡(negative balance)暴露了一个不同的颜色。该类的其它元素很直接。
现在我们建立一个界面来操作这些对象的集合(见图5)。
图5.演示背景颜色绑定的窗体(设计时)
[1] [2] 下一页

【责编:John】