Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Kuinka virheenrakennan nollaviite poikkeukset sitoutuessaan MVVMCROSS: ään


Kuinka virheenrakennan nollaviite poikkeukset sitoutuessaan MVVMCROSS: ään


Virheenkorjaus NULL -viitepoikkeuksiin, kun MVVMCross -näkemysten sitoutuminen sisältää useita vaiheita ongelman tunnistamiseksi ja ratkaisemiseksi. Tässä on yksityiskohtainen opas lähestyä tätä ongelmaa:

1. Tunnista poikkeuksen lähde **

- Tarkista pinon jäljitys: Pinojälki osoittaa, missä nollaviite poikkeus tapahtuu. Tämä voi olla mielestäsi, katselemalli tai itse MVVMCross.
- Yleiset kysymykset: Yleisiä lähteitä ovat rekisteröimättömät palvelut, NULL VIEW -mallit tai väärin määritetyt sidokset.

2. Vahvista ViewModel ja Binding Setup **

- ViewModel -alustus: Varmista, että näkymämalli on alustettu ja asetettu näkymään. MVVMCrossissa tämä tapahtuu yleensä automaattisesti, mutta voit tarkistaa sen tarkistamalla näkymäsi "ViewModel" -ominaisuuden.
- Sidontakokoonpano: Varmista, että sidokset on määritetty oikein. Käytä `createBindingset 'määrittääksesi sidokset ja varmista, että tyypit vastaavat (esim." Mainview "ja` mainViewModel`).

3. Tarkista NULL -viitteet sidoksissa **

- Ominaisuusreitit: Varmista, että sidosten ominaisuuspolut ovat oikeat ja että näkymämallissa on ominaisuuksia. Jos esimerkiksi sitoudut `vm => vm.myproperty` -sovellukseen, varmista, että` MyProperty` ei ole nolla ja se on oikein määritelty.
- Myöhäinen alustus: Jos ominaisuudet alustetaan myöhemmin (esim. "Näkymälatauksessa"), varmista, että sidoksia käytetään alustuksen jälkeen.

4. Käytä viivästynyttä sidontaa dynaamiseen sisältöön **

- Jos luot dynaamisesti sisältöä tai hallintalaitteita, harkitse `viivealon 'käyttöä sidosten käytön varmistamiseksi, kun näkymä on täysin rakennettu. Tämä on erityisen hyödyllistä, kun työskentelet mukautettujen hallintalaitteiden tai dynaamisten luetteloiden kanssa.

5. Varmista oikea IOC -rekisteröinti **

- Palvelun rekisteröinti: Jos käytät palveluja näkymämallissasi, varmista, että ne on rekisteröity KOK -säilöön. MVVMCROSS käyttää `imvxiocprovider` tähän tarkoitukseen.
- Alkuperäiskunnat: Jos teet alustakohtaisia ​​IOC-rekisteröintejä, varmista, että soitat "base.initializelastChance ()" välttääksesi aiheet [4] kuvatut kysymykset.

6. Mukautetut sitovat ongelmat **

- Jos käytät mukautettuja sidoksia, tarkista, että kohteen sitoutumisluokat on toteutettu ja rekisteröity oikein `setup.cs` -kohdassa ohittamalla` FillTargetFactores`, kuten kohdassa [5] on esitetty.

7. Virheenkorjaustekniikat **

- Breakpoints: Käytä murtopisteitä näkymämallin ja sidosten tilan tarkistamiseen suorituksen aikana.
- SKUPAIKKA: Ota MVVMCross -kirjaus käyttöön saadaksesi yksityiskohtaisia ​​tietoja sidontaoperaatioista ja mahdollisista virheistä.

8. MVXasyncCommand Issues **

- Jos käytät `mvxasyncommand`, varmista, että` mvx.iocprovider` alustetaan ennen komentojen rakentamista, kuten julkaisussa [1] on kuvattu. Tämä on ratkaisevan tärkeää yksikkötestausskenaarioissa.

Näitä vaiheita noudattamalla sinun pitäisi pystyä tunnistamaan ja ratkaisemaan useimmat NULL -vertailupoikkeukset, jotka liittyvät MVVMCrossin sidoksiin.

Viittaukset:
.
.
[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/mvxnotifytak
[8] https://www.mvvmcross.com/documentation/fundamentals/data-binding