Skip to content

Commit

Permalink
Merge pull request #45 from bmeviauab00/norbertkurcsi-fix-typo
Browse files Browse the repository at this point in the history
fix typo 5-mvvm hazi
  • Loading branch information
bzolka authored May 12, 2024
2 parents e54dcfb + 8bcce19 commit ed2c44d
Showing 1 changed file with 3 additions and 3 deletions.
6 changes: 3 additions & 3 deletions docs/hazi/5-mvvm/index.md
Original file line number Diff line number Diff line change
Expand Up @@ -115,7 +115,7 @@ Ez a kód, egy fordítást követően, alapjaiban ugyanazt a megoldást eredmén

* Egyrészt az `ObservableObject` ős már megvalósítja az `INotifyPropertyChanged` interfészt, így a `PropertyChanged` esemény tagot is tartalmazza, ezt a származtatás révén "megörökli" az osztályunk.
* A fordítás során lefut az MVVM Toolkit kódgenerátora, mely minden `ObservableProperty` attribútummal ellátott tagváltozóhoz generál egy ugyanolyan nevű, de nagybetűvel kezdődő tulajdonságot az osztályba, mely tulajdonság settere elsüti megfelelő feltételek mellett és megfelelő paraméterekkel a `PropertyChanged` eseményt. Hurrá, ezt a kódot akkor nem nekünk kell megírni.
* Kérdés, hol keletkezi ez a kód. Az osztályunk egy másik "partial" részében. Egy fordítást követően Visual Studio-ban jobb gombbal kattintsunk a `Person` osztály nevén, majd a felugró menüben "Go to Definition". Ekkor egy alsó ablakban két találatot is kapunk: az egyik az általunk írt fenti kód, a másik ("public class Person") a generált részre ugrik egy duplakatt hatására: látszik, hogy viszonylag terjengős kódot generált a kódgenerátor, de ami nekünk fontos, hogy itt található a `Name` és `Age` tulajdonság, benne - többek között - a `OnPropertyChanged` elsütésével.
* Kérdés, hol keletkezik ez a kód. Az osztályunk egy másik "partial" részében. Egy fordítást követően Visual Studio-ban jobb gombbal kattintsunk a `Person` osztály nevén, majd a felugró menüben "Go to Definition". Ekkor egy alsó ablakban két találatot is kapunk: az egyik az általunk írt fenti kód, a másik ("public class Person") a generált részre ugrik egy duplakatt hatására: látszik, hogy viszonylag terjengős kódot generált a kódgenerátor, de ami nekünk fontos, hogy itt található a `Name` és `Age` tulajdonság, benne - többek között - a `OnPropertyChanged` elsütésével.

:exclamation: A kódgenerátor szokásosan az osztályunk másik "partial" felébe dolgozik, annak érdekében, hogy ne keveredjen az általunk írt és a generált kód! A partial classokat leggyakrabban a kézzel írt és a generált kód "különválasztására" használjuk.

Expand Down Expand Up @@ -223,7 +223,7 @@ A következő lépésben valósítsd meg a kapcsolódó változásértesítést

Teszteld is a megoldásod! Ha jól dolgoztál, a gombnak akkor is le kell tiltódnia, ha a TextBoxba kézzel írsz be negatív életkor értékets utána kikattintasz a TextBoxból). Gondold át, miért van ez így!

A "+" gombra és a "+Add" gomra is dolgozz ki hasonló megoldást!
A "+" gombra és a "+Add" gombra is dolgozz ki hasonló megoldást!

* Az életkor maximális "elfogadható" értéke 150 legyen.
* A név csak akkor elfogadható, ha van benne legalább egy nem whitespace karakter (ez utóbbi ellenőrzésére a string osztály `IsNullOrWhiteSpace` statikus műveletét használd).
Expand Down Expand Up @@ -303,4 +303,4 @@ Jelen megoldásunk a Relaxed MVVM megközelítést követi, vagyis a View-ban k
* Meg kellene valósítani az `INotifyPropertyChanged` interfészt:
* `ObservableObject` származtatás
* A tulajdonságok setterében a `SetProperty` ősből örökölt segédfüggvény használata (hogy kiváltódjon a `PropertyChanged` esemény)
* A Viewhoz tartozó `PersonPageViewModel`-ünket át kellene alakítani, hogy ne a `Person` modell, hanem az új `PersonViewModel`-t használja.
* A Viewhoz tartozó `PersonPageViewModel`-ünket át kellene alakítani, hogy ne a `Person` modell, hanem az új `PersonViewModel`-t használja.

0 comments on commit ed2c44d

Please sign in to comment.