'------------------------------------------------------------------------------
' <auto-generated>
'     This code was generated from a template.
'
'     Manual changes to this file may cause unexpected behavior in your application.
'     Manual changes to this file will be overwritten if the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------

Imports System
Imports System.Collections.Generic
Imports System.Collections.ObjectModel
Imports System.ComponentModel

Partial Public Class Product
	Implements INotifyPropertyChanged
    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    Protected Sub OnPropertyChanged(ByVal propertyName As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(propertyName))
    End Sub

    Private _ProductID As Integer
    Public Property ProductID As Integer
        Get
            Return _ProductID
        End Get
        Set(ByVal value As Integer)
            _ProductID = value
            OnPropertyChanged("ProductID")
        End Set
    End Property

    Private _ProductName As String
    Public Property ProductName As String
        Get
            Return _ProductName
        End Get
        Set(ByVal value As String)
            _ProductName = value
            OnPropertyChanged("ProductName")
        End Set
    End Property

    Private _SupplierID As Nullable(Of Integer)
    Public Property SupplierID As Nullable(Of Integer)
        Get
            Return _SupplierID
        End Get
        Set(ByVal value As Nullable(Of Integer))
            _SupplierID = value
            OnPropertyChanged("SupplierID")
        End Set
    End Property

    Private _CategoryID As Nullable(Of Integer)
    Public Property CategoryID As Nullable(Of Integer)
        Get
            Return _CategoryID
        End Get
        Set(ByVal value As Nullable(Of Integer))
            _CategoryID = value
            OnPropertyChanged("CategoryID")
        End Set
    End Property

    Private _QuantityPerUnit As String
    Public Property QuantityPerUnit As String
        Get
            Return _QuantityPerUnit
        End Get
        Set(ByVal value As String)
            _QuantityPerUnit = value
            OnPropertyChanged("QuantityPerUnit")
        End Set
    End Property

    Private _UnitPrice As Nullable(Of Decimal)
    Public Property UnitPrice As Nullable(Of Decimal)
        Get
            Return _UnitPrice
        End Get
        Set(ByVal value As Nullable(Of Decimal))
            _UnitPrice = value
            OnPropertyChanged("UnitPrice")
        End Set
    End Property

    Private _UnitsInStock As Nullable(Of Short)
    Public Property UnitsInStock As Nullable(Of Short)
        Get
            Return _UnitsInStock
        End Get
        Set(ByVal value As Nullable(Of Short))
            _UnitsInStock = value
            OnPropertyChanged("UnitsInStock")
        End Set
    End Property

    Private _UnitsOnOrder As Nullable(Of Short)
    Public Property UnitsOnOrder As Nullable(Of Short)
        Get
            Return _UnitsOnOrder
        End Get
        Set(ByVal value As Nullable(Of Short))
            _UnitsOnOrder = value
            OnPropertyChanged("UnitsOnOrder")
        End Set
    End Property

    Private _ReorderLevel As Nullable(Of Short)
    Public Property ReorderLevel As Nullable(Of Short)
        Get
            Return _ReorderLevel
        End Get
        Set(ByVal value As Nullable(Of Short))
            _ReorderLevel = value
            OnPropertyChanged("ReorderLevel")
        End Set
    End Property

    Private _Discontinued As Boolean
    Public Property Discontinued As Boolean
        Get
            Return _Discontinued
        End Get
        Set(ByVal value As Boolean)
            _Discontinued = value
            OnPropertyChanged("Discontinued")
        End Set
    End Property


    Private _Category As Category
    Public Overridable Property Category As Category
        Get
            Return _Category
        End Get
        Set(ByVal value As Category)
            _Category = value
            OnPropertyChanged("Category")
        End Set
    End Property

    Private _Order_Details As ObservableCollection(Of Order_Detail) = New ObservableCollection(Of Order_Detail)
    Public Overridable Property Order_Details As ObservableCollection(Of Order_Detail)
        Get
            Return _Order_Details
        End Get
        Set(ByVal value As ObservableCollection(Of Order_Detail))
            _Order_Details = value
            OnPropertyChanged("Order_Details")
        End Set
    End Property

    Private _Supplier As Supplier
    Public Overridable Property Supplier As Supplier
        Get
            Return _Supplier
        End Get
        Set(ByVal value As Supplier)
            _Supplier = value
            OnPropertyChanged("Supplier")
        End Set
    End Property

End Class
