Odhalenie verejných vlastností viazania v MVVMCross je rozhodujúce pre efektívnu väzbu údajov medzi zobrazeniami a modelmi pohľadu. Tu je niekoľko osvedčených postupov, ktoré treba nasledovať:
Pochopenie záväzných konceptov
V MVVMCross zahŕňa väzba pripojenie vlastnosti zdroja v modeli zobrazenia k cieľovej vlastnosti v zobrazení. Zdroj je zvyčajne verejným majetkom v modeli View, zatiaľ čo cieľom je verejná vlastnosť podľa názoru, na ktoré sa chcete zviazať [1].
verejné vlastnosti
Aby bola vlastnosť viazateľná v MVVMCross, musí byť verejná. Platí to pre model pohľadu aj na pohľad. Ak používate vlastné zobrazenie alebo kontrolu, uistite sa, že vlastnosti, ktoré chcete zviazať, sú verejné [1] [2].
Implementácia inotifyPropertyChanged
V modeli View implementujte InotifyPropertyChanged, aby ste pri zmene vlastností oznámili väzbový motor. MVVMCross poskytuje pomocné metódy ako `setProperty` na` mvxViewModel` na zjednodušenie tohto procesu. To zaisťuje, že zmeny v modeli pohľadu sa odrážajú v pohľade [4].
Vlastné cieľové väzby
Ak potrebujete viazať vlastnosti v režime Twoway alebo zvládnuť vlastné scenáre, možno budete musieť vytvoriť vlastné cieľové spojenie. Zahŕňa to definovanie toho, ako nastaviť hodnotu vlastnosti a ako počúvať zmeny. Na zjednodušenie procesu môžete použiť základné triedy ako `mvxPropertyInfotargetBinding` alebo` MVXWithEventPropertyInfotaGetBinding`.
Registrovanie cieľových väzieb
Po vytvorení vlastného TargetBinding ho musíte zaregistrovať v súbore `setup.cs` prepísaním` fillTargetFactories`. To zaisťuje, že MVVMCross vie, ako zvládnuť vaše vlastné väzby [2].
Fluent Bindings
MVVMCross podporuje plynulé väzby, ktoré vám umožňujú definovať väzby v kóde. Pri použití Fluent Bindings sa uistite, že cieľom je skutočný pohľad, na ktorý sa chcete viazať, alebo odhaliť požadovaný majetok ako verejný [1].
vnorené vlastnosti
MVVMCross podporuje väzbu na vnorené vlastnosti. Napríklad sa môžete zaviazať k vlastnosti modelu sub-view. Uistite sa, že model sub-zobrazenia implementuje „inotifyPropertyChanged“ a že je správna zadaná väzbová cesta [5].
ladiace väzby
Ak viazania nefungujú podľa očakávania, použite na zvýšenie úrovne väzbovej stopy `MVXBindingTrace`. To môže pomôcť identifikovať problémy poskytnutím podrobného výstupu o väzbových operáciách [5].
Dodržiavaním týchto osvedčených postupov môžete efektívne vystavovať a viazať verejné vlastnosti v MVVMCross, čím sa zabezpečí robustné a udržiavateľné aplikácie MVVM.
Citácie:[1] https://blog.ostebaronen.dk/2018/01/mvvmcross-binding-target.html
[2] https://www.mvvmcross.com/documentation/advanced/custom-data-binding
[3] https://stackoverflow.com/questions/79082019/what-is-the-best-practice-to-bind-and-manpiláte-properties-on-a-user-control-in
[4] https://www.mvvmcross.com/documentation/funmamentals/data-binding
[5] https://stackoverflow.com/questions/20986140/binding-sub-properties-mvvmcross
Https://learn.microsoft.com/en-us/archive/msdn-magazine/2014/august/windows-phone-build-mvvvm-apps-with-xamarin-mith-xamarin-mith-mith-mith-xamarin-and-mcross
[7] https://stackoverflow.com/questions/10700445/in-mvvmcross-how-do-i-a-custom-custom-bind-properties
[8] https://www.mvvmcross.com/documentation/advanced/custoughising-using-app-and-setup