#眉標=Silverlight 3.0、DataForm、DataAnnotations #副標=Silverlight 3.0技術應用(2) #大標=Silverlight 3加入資料庫存取機制 #作者=文/圖 董大偉 ===<反灰>============= ================ ===<反灰>============= Dim PhoneBookRec1 As New PhoneBookItem With {.Name = "David", .Tel = "0912345678"} txb_name.DataContext = PhoneBookRec1 ================ ================ 程式1 '一筆資料的結構 Public Class PhoneBookItem Implements System.ComponentModel.IEditableObject, _   System.ComponentModel.INotifyPropertyChanged 'Name屬性 Private _Name As String Property Name() As String    Get    Return _Name    End Get    Set(ByVal value As String)    _Name = value    OnPropertyChanged("Name")    End Set End Property 'Tel屬性 Private _Tel As String Property Tel() As String   Get    Return _Tel   End Get   Set(ByVal value As String)    _Tel = value    OnPropertyChanged("Tel")   End Set End Property (…略…) Public Sub BeginEdit() Implements System.ComponentModel.IEditableObject.BeginEdit (…略…) End Sub Public Sub CancelEdit() Implements System.ComponentModel.IEditableObject.CancelEdit (…略…) End Sub Public Sub EndEdit() Implements System.ComponentModel.IEditableObject.EndEdit (…略…) End Sub Protected Sub OnPropertyChanged(ByVal propName As String)   RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) End Sub Public Event PropertyChanged(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) Implements PropertyChanged End Class ================ ================ 程式2 Public Class AddressBook Inherits ObservableCollection(Of AddressBookItem) (…略…) End Class ================ ===<反灰>============= Private _cName As String Private _Mobile As String Private _TelHome As String Private _TelOffice As String Private _Birthday As Date Private _Children As Integer Private _isMarried As Boolean Private _Sex As SexType ================ ================ 程式3 Public Class AddressBookItem Implements System.ComponentModel.IEditableObject,_ System.ComponentModel.INotifyPropertyChanged //別忘了物件必須實作這兩個介面 Sub New() End Sub Private _Birthday As Date Public Property Birthday() As Date   Get    Return _Birthday   End Get   Set(ByVal value As Date)    _Birthday = value    OnPropertyChanged("Birthday")   //別忘了要觸發PropertyChanged事件 End Set End Property (…其他屬性…略…) #Region "IEditableObject介面" //IEditableObject介面實作部分 Public Sub BeginEdit() Implements IEditableObject.BeginEdit End Sub Public Sub CancelEdit() Implements IEditableObject.CancelEdit End Sub Public Sub EndEdit() Implements IEditableObject.EndEdit End Sub #End Region #Region "INotifyPropertyChanged介面" //INotifyPropertyChanged介面實作部分 Public Event PropertyChanged(ByVal sender As Object, ByVal e As PropertyChangedEventArgs) Implements INotifyPropertyChanged.PropertyChanged Protected Sub OnPropertyChanged(ByVal propName As String)   RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propName)) End Sub #End Region End Class ================ ===<反灰>============= Public Class AddressBook Inherits System.Collections.ObjectModel.ObservableCollection(Of AddressBookItem) //AddressBookItem是我們剛才設計好的物件,現在建立該物件的集合   Sub New() End Sub End Class ================ ================ 程式4