Az MVVMCross -ban a View előadók döntő szerepet játszanak a ViewModels bemutatásának kezelésében a különböző platformokon. Ha azonban alternatívákat vagy módszereket keres a prezentációs logika testreszabásának, amelyen túlmutat a bemutató, az előadók által kínál, íme néhány megközelítés:
1. Testreszabási előadó testreszabása **
Bővítheti vagy módosíthatja a meglévő nézőműsorokat az alosztályba sorolással vagy az „IMVXViewPresenter” interfész megvalósításával. Ez lehetővé teszi a prezentációs logika testreszabását speciális igényekhez, például a különböző képernyőméretek vagy orientációk kezelése különböző platformon [1] [3]. Például érdemes lehet a ViewModel -t eltérően megjeleníteni egy telefonon, szemben a tablettával.2. Prezentációs tippek használata **
Az MVVMCross egy prezentációs tippeknek (`mvxPresentationHint") nevű mechanizmust biztosít, amely lehetővé teszi a felhasználói felületen történő változások kérését anélkül, hogy szükségszerűen megmutatnánk egy új ViewModel -t. Készíthet egyéni tippeket, amelyek jelzik a műsorvezetőnek, például a ViewModel bezárását vagy a navigációs verem módosítását [1] [3]. Ez a megközelítés hasznos az összetett felhasználói felület interakcióinak kezelésére, amelyekre az alapértelmezett előadók nem vonatkoznak.3. Alternatív MVVM keretek **
Ha szélesebb változást keres az MVVM architektúrájában, akkor fontolóra veheti az alternatív kereteket, amelyek a bemutatás és a navigáció eltérő megközelítését kínálják. Néhány népszerű alternatíva a következők:- Prism: A WPF, Xamarin Forms és az UNO platformok robusztus támogatásáról ismert Prism átfogó keretet biztosít a karbantartható alkalmazások kiépítéséhez [4].
- ReactiveUi: Ez a keret a funkcionális reaktív programozásra összpontosít, lehetővé téve az absztrakciók és tesztelhetőbb felhasználói felület logikáját [4].
- Caliburn.Micro: Könnyű keret, amely támogatja az MV* mintákat az XAML platformon, hangsúlyozva a gyors fejlődést a kódminőség feláldozása nélkül [4].
4. Egyéni navigációs logika **
Ahelyett, hogy kizárólag a nézőműsorokra támaszkodna, az egyéni navigációs logikát közvetlenül az alkalmazásban valósíthatja meg. Ez magában foglalhatja a platformspecifikus navigációs API-k használatát vagy egy olyan egyedi navigációs szolgáltatás létrehozását, amely integrálódik az MVVMCross ViewModel-ViewModel navigációs funkcióival [6].5. Diálogók és repülések **
A forgatókönyvekhez, ahol a tartalmat a szokásos navigációs folyamaton kívül kell megjeleníteni, az MVVMCross párbeszédpanelek és repülések használatával támogatja. Ezek testreszabhatók a konkrét prezentációs igényekhez, alternatívát kínálva a hagyományos oldalalapú navigációhoz [9].Összefoglalva: míg a nézetű bemutatók hatékony eszközök az MVVMCross -ban, testreszabhatja vagy kibővítheti azokat, felhasználhatja a prezentációs tippeket a dinamikus felhasználói felület változásához, vagy feltárhatja az alternatív MVVM kereteket és az egyéni navigációs megközelítéseket az alkalmazáshoz kívánt bemutató logika eléréséhez.
Idézetek:[1] https://www.mvvmcross.com/documentation/fundamentals/view-presenters
[2] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[3] https://gregshackles.com/presenters-in-mvvmcross-a-primer/
[4] https://dotnet.libhunt.com/mvvmcross-alternatives
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[6] https://stackoverflow.com/questions/18735497/mvvmcross-navigation-onscreen
[7] https://stackoverflow.com/questions/22601018/what-re-the-alternives-of-module-view-presentermvp-design-pattern
[8] https://yanxiaodi.gitbook.io/xamarin-mvvmcross-andbook/using-mvvmcross-to-create-first-xamarin-ppp/creating-t--os-project/understanding-the-data-binding-syntax
[9] https://www.mvvmcross.com/documentation/advanced/customizing-using-app-andsetup