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