' The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238

''' <summary>
''' An empty page that can be used on its own or navigated to within a Frame.
''' </summary>
Public NotInheritable Class MainPage
    Inherits Page

    ' Konstruktor
    Public Sub New()
        InitializeComponent()

        'Priklad 1: propojeni ovladaciho prvku TextBox ke tride Student
        's cilem zobrazeni zaznamu jednoho studenta.
        'Nastavuje vlastnost DataContext textoveho pole na novy zaznam studenta,
        'pri jehoz vytvareni je zadavano jmeno studenta, jmeno kurzu, datum zahajeni
        'a jmeno instruktora.
        TextovePoleVystup.DataContext = New Student("Josef Křemílek", _
           "Sjezdaři středňáci", New DateTime(2015, 2, 5), "Honza")

        'Priklad 2: propojeni ovladaciho prvku ListBox s kolekci zaznamu studentu.
        'Chcete-li si vyzkouset tento priklad, odstrante priznak komentare
        'u nasledujiciho kodu, vytvarejiciho zaznamy pro 4 studenty ve formatu,
        'pozadovanem tridou Student.
        'VsichniStudenti.Add(New Student("František Rumcajs", _
        '   "Prknaři začátečníci", New DateTime(2014, 1, 15), "Petr"))
        'VsichniStudenti.Add(New Student("Petr Vochomůrka", _
        '   "Sjezdaři závodníci", New DateTime(2014, 1, 8), "Jirka"))
        'VsichniStudenti.Add(New Student("Jiří Hurvínek", _
        '   "Běžkaři začátečníci", New DateTime(2015, 1, 13), "Petr"))
        'VsichniStudenti.Add(New Student("Emil Spejbl", _
        '   "Běžkaři začátečníci", New DateTime(2015, 1, 13), "Petr"))
        'nasledujici radek prirazuje kolekci seznamu
        'SeznamVystup.DataContext = VsichniStudenti

    End Sub
    'Verejna genericka kolekce, vyuzivana v prikladu 2 k ulozeni dat studentu.
    Public VsichniStudenti As New ObservableCollection(Of Student)()

    'Verejna (public) trida, vytvarejici zdroj dat (majici 4 vlastnosti)
    'pro vazane ovladaci prvky.
    Public Class Student
        Public Sub New()
        End Sub

        Public Sub New(ByVal jmenoStudenta As String, ByVal jmenoTridy As String, _
            ByVal zahajeniKurzu As DateTime, ByVal ucitel As String)
            Student = jmenoStudenta
            NazevTridy = jmenoTridy
            DatumZahajeni = zahajeniKurzu
            Instruktor = ucitel
        End Sub

        'Zde jsou definovany vlastnosti jmeno studenta, jmeno tridy,
        'datum zahajeni a jmeno instruktora.
        Public Property Student As String
        Public Property NazevTridy As String
        Public Property DatumZahajeni As DateTime
        Public Property Instruktor As String
        'Nasledujici metoda prekryva metodu ToString.
        Public Overloads Overrides Function ToString() As String
            Return Student + " se přihlásil do kurzu: " _
                + NazevTridy + "; zahájení dne: " _
                + DatumZahajeni.ToString("d") + "; instruktor: " + Instruktor
        End Function
    End Class

End Class
