NULL -i viite erandite silumine MVVMCrossi vaadete sidumisel hõlmab mitme sammu probleemi tuvastamiseks ja lahendamiseks. Siin on üksikasjalik juhend sellele probleemile lähenemiseks:
1. Tuvastage erandi allikas **
- Kontrollige virna jälge: virnajälg näitab, kus toimub nullviite erand. See võib olla teie vaates, vaatamismudelis või MVVMcrossi enda sees.- Ühised probleemid: tavalised allikad hõlmavad registreerimata teenuseid, nullvaate mudeleid või valesti konfigureeritud köiteid.
2. ViewModel ja sidumise seadistamine **
- ViewModel Initsialiseerimine: veenduge, et teie vaatemudel oleks õigesti lähtestatud ja vaatele seatud. MVVMcrossis juhtub see tavaliselt automaatselt, kuid saate seda kontrollida, kontrollides oma vaate atribuuti "ViewModel".- Kinnituskonfiguratsioon: veenduge, et köited oleksid õigesti konfigureeritud. Kasutage kiituste määratlemiseks ja veenduge, et tüübid sobivad (nt `MainView` ja` MainViewModel`).
3. Kontrollige nullviiteid köites **
- omaduste teed: veenduge, et teie köites olevad atribuudid oleksid õiged ja omadused oleks vaatemudelil. Näiteks kui seostute `vm => vm.myProperty` -ga, kontrollige, kas` myProperty ”pole null ja on õigesti määratletud.- Hiline initsialiseerimine: kui omadused lähtestatakse hiljem (nt `ViewDIDload ’s), veenduge, et pärast lähtestamist rakendatakse köiteid.
4. Dünaamilise sisu saamiseks kasutage hilinenud sidumist **
- Kui genereerite dünaamiliselt sisu või juhtelemente, kaaluge pärast vaate täielikku konstrueerimist kasutamist `viivituse) kasutamist. See on eriti kasulik kohandatud juhtnuppude või dünaamiliste loenditega töötamisel.5. Tagage ROK nõuetekohane registreerimine **
- Teenuste registreerimine: kui kasutate teenuseid oma vaatemudelis, veenduge, et need on registreeritud ROK -i konteineris. MVVMCROSS kasutab sel eesmärgil `imvxiocprovider`.- InitializizeLastchange: kui teete platvormipõhiseid ROK-i registreerimisi, veenduge, et helistage base.initializeLastchange () `, et vältida probleeme, nagu on kirjeldatud [4].
6. Kohandatud köitmisprobleemid **
- Kui kasutate kohandatud köiteid, kontrollige, kas teie sihtmärgi köitmisklassid rakendatakse ja registreeritakse õigesti `SETUP.CS", ületades "FillTargetFactories", nagu on näidatud [5].7. silumistehnikad **
- murdepunktid: kasutage puhkepunkte, et kontrollida oma vaatemudeli olekut ja sidumisi käitusajal.- Logimine: lubage MVVMcrossi logimine, et saada üksikasjalikku teavet sidumisoperatsioonide ja võimalike vigade kohta.
8. mvxasynccommand väljaanded **
- Kui kasutate `mvxasynccommand", veenduge, et enne käskude koostamist lähtestatakse `mvx.iocprovider`, nagu on kirjeldatud artiklis [1]. See on üksuse testimise stsenaariumide jaoks ülioluline.Neid samme järgides peaksite olema võimeline tuvastama ja lahendama enamikku null -viite erandeid, mis on seotud vaate köitega MVVMcrossis.
Tsitaadid:]
]
[3] https://github.com/mvvmcross/mvvmcross/issues/1378
]
[5] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
]
[7] https://www.mvvmcross.com/documentation/advanced/mvxnotifytask
[8] https://www.mvvmcross.com/documentation/fundamentals/data-binding