Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuidas siluda null viite erandeid, kui siduvad vaated mvvmcrossis


Kuidas siluda null viite erandeid, kui siduvad vaated mvvmcrossis


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