Kezdőoldal » Számítástechnika » Programozás » Most akkor ez az MVVM hogy is...

Most akkor ez az MVVM hogy is van?

Figyelt kérdés

C# nyelvben készítek egy WPF alkalmazást. Még csak most ismerkedem ezzel az egésszel. Ez egy dalszövegkijelzős zenelejátszó volna. A program főképernyője tehát megjeleníti a dal címét, a dalszöveg aktuális sorát, hogy hol tart a lejátszás, milyen hosszú a zene, stb. Ezek az információk több osztályból jönnek össze:

- a dalszövegkezelésért felelős osztályból

- a zene lejátszásáért felelős osztályból

- a zene adatait szolgáltató osztályból.

Ez mindhárom megvalósítja az INotifyPropertyChanged interfészt. Nos, én azt csináltam, hogy fogtam egy ViewModel-t (:INotifyPropertyChanged) ehhez a formhoz, amibe összedrótoztam a fenti 3 osztály által kínált, a form-on kijelzett adatokat. És ezt a ViewModel-t bind-oltam XAML-ben.


Bár elsőre jó ötletnek tűnt, azért van bennem egy olyan érzés, hogy ez nem a legjobb megoldás. Hogyan szokás egy értelmes ViewModel-t összerakni?


2016. okt. 14. 19:48
 1/1 joco5582 válasza:

Szia,

Szerintem nincs univerzális elfogadott jó megoldás.

Saját részről én ezt preferálom:

1. Legyen dialogós, xaml bindinggal és nagyon lazán kötve a dialógus .cs fájlával. Tehát ne legyen az initialize metódusban sem más eventekben különböző xaml által is definiálható elem és működés.

Tipikusan hiba szerintem, ha a xaml bindinggal leírható működés managelt code-al van megoldva. Aztán ha ismétlődő UI működés gomb\menu eventjében van ahelyett hogy közös command legyen. Ugyanez igaz pepitában is, van beépített jól működő command de valaki ír sajátot. Tipikus példa grid sor törlés, új és a többi.

2. Legyen minden dialógushoz viewModel, mely tartalmazza a dialógus adatait, adatkezelés szabályait, és a dialógus kiválaszott\visszaadott értékeit.

Ezt azért tartom jónak, mert egy közös viewmodelnél keveredik a logika és nehézkes követni mit miért csinál az ember. Ráadásul egy azonos adat rétegre több view is létrehozható, akkor miért ne lehetne a dialógusoknak külön viewmodeljük is.


Remélem segítettem

2016. okt. 18. 11:09
Hasznos számodra ez a válasz?

További kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!