Home Arrow Icon Knowledge base Arrow Icon Global Arrow Icon Y a-t-il des limites à l'utilisation d'une liaison unique dans MVVMCROSS


Y a-t-il des limites à l'utilisation d'une liaison unique dans MVVMCROSS


La liaison unique dans MVVMCROSS est un mode de liaison utile qui transfère les valeurs du ViewModel à la vue une seule fois, lorsque la source de liaison est définie. Il ne surveille pas activement les modifications dans le ViewModel, ce qui signifie qu'il ne met pas à jour la vue si les propriétés de ViewModel changent après la liaison initiale. Voici quelques limitations et considérations pour l'utilisation d'une liaison unique:

1. Pas de mises à jour continues: la limitation principale de la liaison ponctuelle est qu'elle ne met pas à jour en permanence la vue en fonction des modifications du ViewModel. Cela le rend moins adapté aux données dynamiques qui doivent être reflétées en temps réel sur l'interface utilisateur.

2. Données statiques: la liaison ponctuelle est mieux utilisée pour les données statiques ou en lecture seule qui ne changent pas fréquemment. Par exemple, il est souvent utilisé pour définir du texte statique à partir de fichiers linguistiques, car la sélection de la langue est généralement effectuée une fois et non changée fréquemment [1].

3. Lorsque l'utilisateur défile dans une liste, les vues sont recyclées et réutilisées, ce qui peut entraîner des liaisons uniques à se redresser, se comportant efficacement comme des liaisons continues [4]. Cela peut conduire à un comportement inattendu s'il n'est pas géré correctement.

4. Considérations de performance: Bien que les liaisons uniques ne surveillent pas les changements, ils n'introduisent pas intrinsèquement des problèmes de performance. Cependant, si elle est largement utilisée dans des dispositions complexes ou avec de nombreuses liaisons, la configuration initiale peut contribuer à des temps de rendu d'interface utilisateur plus lents par rapport à d'autres modes de liaison [9].

5. Sécurité du thread: les liaisons MVVMCross, y compris les liaisons uniques, peuvent être affectées par les problèmes de filetage s'ils ne sont pas correctement gérés. Par exemple, si les liaisons sont exécutées sur un thread de travailleur, cela peut conduire à un comportement inattendu à moins d'être correctement synchronisé avec le thread d'interface utilisateur [5] [3].

En résumé, bien que la liaison unique est utile pour les données statiques, elle n'est pas idéale pour les données ou scénarios dynamiques où des mises à jour continues sont nécessaires. De plus, son comportement dans certains composants de l'interface utilisateur comme «RecyclerView» nécessite une manipulation minutieuse pour éviter les reliures inattendues.

Citations:
[1] https://www.mvvmcross.com/documentation/fundamentals/data-binding
[2] https://stackoverflow.com/questions/25460030/when-to-use-mvvmcross-data-bindings
[3] https://github.com/mvvmcross/mvvmcross/issues/1545
[4] https://stackoverflow.com/questions/48910503/binding-mode-onetime-in-mvxrecyclerview
[5] https://www.mvvmcross.com/mvvmcross-4.2/
[6] https://github.com/mvvmcross/mvvmcross/issues/29
[7] https://stackoverflow.com/questions/17156368/
[8] https://learn.microsoft.com/en-us/dotnet/maui/fundamentals/data-binding/binding-mode?view=net-maui-9.0
[9] https://github.com/mvvmcross/mvvmcross/issues/1342
[10] https://www.mvvmcross.com/mvvmcross-5-release/