MVVMCROSS „View“ pranešėjai vaidina lemiamą vaidmenį valdant „ViewModels“ pristatymą skirtingose platformose. Tačiau jei ieškote alternatyvų ar būdų, kaip pritaikyti pristatymo logiką, išskyrus tai, ką siūlo laidos vedėjai, čia yra keletas būdų:
1. Vaizdo pristatymų pritaikymas **
Galite išplėsti arba modifikuoti esamus „View“ laidų vedėjus, juos supažindindami arba įdiegdami „IMVXViewPresenter“ sąsają. Tai leidžia pritaikyti pristatymo logiką konkrečiems poreikiams, pavyzdžiui, tvarkyti skirtingus ekrano dydžius ar orientacijas įvairiose platformose [1] [3]. Pvz., Galbūt norėsite kitaip telefone rodyti „ViewModel“, palyginti su planšetiniu kompiuteriu.2. Pateikimo užuominų naudojimas **
„MVVMCross“ pateikia mechanizmą, vadinamą pateikimo užuominomis (`MVXPresentationHint`), leidžiančiu paprašyti UI pakeitimų, nebūtinai rodant naują„ ViewModel “. Galite sukurti pasirinktines užuominas, norėdami signalizuoti apie konkrečius pranešimo veiksmus, pavyzdžiui, uždaryti „Viewmodel“ arba modifikuoti navigacijos kaminą [1] [3]. Šis požiūris yra naudingas tvarkant sudėtingų vartotojo sąsajų sąveiką, kuriai netaikoma numatytųjų pranešėjų.3. Alternatyvios MVVM sistemos **
Jei ieškote platesnių MVVM architektūros pokyčių, galite apsvarstyti alternatyvius rėmus, kurie siūlo skirtingus pristatymo ir navigacijos metodus. Kai kurios populiarios alternatyvos yra:- PRISM: Žinomas dėl tvirtos paramos WPF, „Xamarin Forms“ ir „UNO“ platformose, „Prism“ pateikia išsamią pagrindą, skirtą prižiūrimų programų kūrimui [4].
- „ReactiveUi“: Šioje sistemoje pagrindinis dėmesys skiriamas funkciniam reaktyviam programavimui, leidžiančiam abstraktesnei ir išbandoma UI logikai [4].
- „Caliburn.Micro“: lengvas sistema, palaikanti MV* modelius visose XAML platformose, pabrėžiant greitą vystymąsi neprarandant kodo kokybės [4].
4. Pasirinktinė navigacijos logika **
Užuot pasikliavę vien tik laidų vedėjais, galite tiesiogiai įdiegti pasirinktinę naršymo logiką savo programoje. Tai gali apimti konkrečios platformos navigacijos API naudojimą arba pritaikytos naršymo paslaugos, integruotos su „MVVMCross“ „ViewModel-to-ViewModel“ navigacijos funkcijomis, sukūrimas [6].5. Dialogai ir skraidymai **
Scenarijams, kuriuose reikia parodyti turinį už standartinio naršymo srauto ribų, „MVVMCross“ palaiko naudojant dialogus ir skriejus. Jie gali būti pritaikyti atsižvelgiant į konkrečius pateikimo poreikius, siūlant alternatyvą tradicinei navigacijai puslapyje [9].Apibendrinant galima pasakyti, kad nors „View“ pranešėjai yra galingas „MVVMCross“ įrankis, galite juos pritaikyti arba išplėsti, naudoti pateikimo patarimus dinaminiams vartotojo sąsajos pakeitimams arba ištirti alternatyvius MVVM sistemas ir pasirinktinius navigacijos metodus, kad pasiektumėte norimą jūsų programos pateikimo logiką.
Citatos:[1] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-inding-arget.html
[3] https://greghackles.com/presenters-in-mvvmcross-a-primer/
[4] https://dotnet.libhunt.com/mvvmcross-alternations
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[6] https://stackoverflow.com/questions/18735497/mvvmcross--avigation-on-screen
[7] https://stackoverflow.com/questions/22601018/what-are-the-alternations-of-module-view-presentermvp-design-pattern
[8] https://yanxiaodi.gitbook.io/xamarin-mvvmcross-handbook/using-mvvmcross-to-create-your-first-xamarin-app/create-the-ios-project/undericle-the-data-binding-syntax
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-app ir-setup