2013-05-14 4 views
1

J'ai écrit un exemple d'application mvvmcross touch, essentiellement une copie du tutoriel CustomerManagement. J'ai un client dans mon CustomersListViewModel.Erreur de liaison Mvvmcross tableviewcell

Lorsque je lance l'application, j'obtiens l'erreur suivante dans la sortie (regardez à la fin de ce post).

Si je charge un tas de plugins non requis dans ma classe d'installation, l'erreur disparaît. Cela pourrait-il être un problème de synchronisation?

Vous pouvez trouver le code pour le projet à https://github.com/patbonecrusher/MvxTableViewSampleApp.git

Starting iOS simulator 6.1 
Launching application 
Application launched. PID = 95621 
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/monotouch.dll [External] 
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.Core.dll [External] 
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.dll [External] 
Thread started: #2 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvxBindingTableTest/bin/iPhoneSimulator/Debug/MvxBindingTableTest.exe 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross- Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Touch.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Dialog.Touch.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.CrossCore.Touch.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.CrossCore.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Binding.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Binding.Touch.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvxBindingTableTest.Core/bin/Debug/MvxBindingTableTest.Core.dll 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/CrossUI.Touch.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/CrossUI.Core.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Plugins.File.dll [External] 
Loaded assembly: /Volumes/dagon/Users/pat/Projects/learning-sandbox/MvxBindingTableTest/MvvmCross-Binaries/XS-iOS-Mac/bin/Release/Mvx/Touch/Cirrious.MvvmCross.Plugins.ResourceLoader.dll [External] 
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/Mono.Security.dll [External] 
Loaded assembly: /Developer/MonoTouch/usr/lib/mono/2.1/System.Xml.dll [External] 
2013-05-14 10:47:47.266 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.00 Setup: PlatformServices start 
2013-05-14 10:47:47.277 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.05 Setup: Bootstrap actions 
2013-05-14 10:47:47.287 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.06 Setup: StringToTypeParser start 
2013-05-14 10:47:47.291 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.06 Setup: ViewModelFramework start 
2013-05-14 10:47:47.293 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.06 Setup: PluginManagerFramework start 
2013-05-14 10:47:47.295 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.07 Setup: App start 
2013-05-14 10:47:47.296 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.07 Setup: ViewModelTypeFinder start 
2013-05-14 10:47:47.297 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.07 Setup: ViewsContainer start 
2013-05-14 10:47:47.299 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.07 Setup: ViewDispatcher start 
2013-05-14 10:47:47.299 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.07 Setup: Views start 
2013-05-14 10:47:47.311 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.08 Setup: CommandCollectionBuilder start 
2013-05-14 10:47:47.312 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.08 Setup: NavigationSerializer start 
2013-05-14 10:47:47.313 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.08 Setup: LastChance start 
2013-05-14 10:47:47.326 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.10 Setup: Secondary end 
2013-05-14 10:47:47.327 MvxBindingTableTest[95621:c07] mvx: Diagnostic: 0.10 Showing ViewModel CustomerListViewModel 
2013-05-14 10:47:47.330 MvxBindingTableTest[95621:c07] TouchNavigation: Diagnostic: 0.10 Navigate requested 
2013-05-14 10:47:47.405 MvxBindingTableTest[95621:c07] MvxBind: Error: 0.18 MvxBind 

Répondre

0

Merci pour le journal des erreurs pleine et pour la repro GitHub.

Le message d'erreur de trace vide me confusion ...

Mais je devine que cette erreur est causée par le fait que notre enveloppe cellulaire vue de table standard crée une ImageLoader par défaut - voir https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L57

Je suppose que la trace provient en quelque sorte de https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding/Views/MvxBaseImageViewLoader.cs#L30

Ce chargeur d'image utilise le plugin DownloadCache qui à son tour utilise le plugin File. (Il a en outre besoin d'un sérialiseur de texte comme le plugin JSON si vous voulez qu'il conserve les images sur le disque de manière plus permanente).

Si vous ne voulez pas d'images dans votre application - donc vous ne voulez pas ces plugins - alors il ne semble pas que vous pouvez éviter ce problème et continuer à utiliser la cellule standard sans changer la source.

Si vous voulez résoudre ce problème:

1 vous pouvez créer votre propre enveloppe cellulaire Tableau standard (basé sur https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L57) 2 vous pouvez utiliser créer une cellule personnalisée. 3 vous pourriez enregistrer un service factice/vide pour satisfaire IMvxImageHelper<UIImage> - cela fonctionnerait mais je ne l'aime pas vraiment comme une solution.

Si vous pensez qu'il s'agit d'un problème sérieux, nous devrions fournir un correctif de base pour, veuillez le signaler comme un problème sur github/slodge/mvvmcross.

Dans les vraies applications, je n'ai pas tendance à utiliser les cellules Standard et j'ai aussi tendance à avoir toujours le downloadcache et le plugin de fichiers - donc je ne vois pas cela comme un problème commun dans mon travail.

+0

Merci Stuart! Cela aide ... Je peux contourner ce problème .. Pas grand chose à charger le plugin ... Je voulais juste m'assurer que je n'étais pas folle! :RÉ –