Imports System.ComponentModel
Imports System.Collections.ObjectModel
Public Class CarsBusinessLogic
Public Function GetCars() As ObservableCollection(Of Car)
Dim carList As New ObservableCollection(Of Car)()
carList.Add(New Car("Dodge", "Ram", 22050, 153))
carList.Add(New Car("Ford", "Explorer", 27175, 96))
carList.Add(New Car("BMW", "Z4", 35600, 42))
carList.Add(New Car("Toyota", "Camry", 20790.99, 131))
Return carList
End Function
End Class
Public Class Car
Implements INotifyPropertyChanged
Private m_make As String
Private m_model As String
Private m_baseprice As Double
Private m_mileage As Integer
Public Sub New()
End Sub
Public Sub New(ByVal make As String, ByVal model As String, ByVal baseprice As Double, ByVal mileage As Integer)
Me.Make = make
Me.Model = model
Me.BasePrice = baseprice
Me.Mileage = mileage
End Sub
Public Property Make() As String
Get
Return m_make
End Get
Set(ByVal value As String)
If m_make <> value Then
m_make = value
OnPropertyChanged("Make")
End If
End Set
End Property
Public Property Model() As String
Get
Return m_model
End Get
Set(ByVal value As String)
If m_model <> value Then
m_model = value
OnPropertyChanged("Model")
End If
End Set
End Property
Public Property BasePrice() As Double
Get
Return m_baseprice
End Get
Set(ByVal value As Double)
If m_baseprice <> value Then
m_baseprice = value
OnPropertyChanged("BasePrice")
End If
End Set
End Property
Public Property Mileage() As Integer
Get
Return m_mileage
End Get
Set(ByVal value As Integer)
If m_mileage <> value Then
m_mileage = value
OnPropertyChanged("Mileage")
End If
End Set
End Property
#Region "INotifyPropertyChanged Members"
Public Event PropertyChanged(ByVal sender As Object, ByVal e As System.ComponentModel.PropertyChangedEventArgs) Implements System.ComponentModel.INotifyPropertyChanged.PropertyChanged
Private Sub OnPropertyChanged(ByVal info As String)
RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
End Sub
#End Region
End Class