2013-05-14 51 views
1

我写了一个mvvmcross触摸示例应用程序,基本上是一个CustomerManagement教程的翻版。 我在我的CustomersListViewModel中有一个客户。Mvvmcross tableviewcell绑定错误

当我运行该应用程序时,我在输出中看到以下错误(查看本文结尾处)。

如果我在我的设置类中加载了一堆不需要的插件,错误消失了。这可能是一个时间问题?

您可以在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 

回答

0

感谢完整的错误日志和GitHub的摄制找到该项目的代码。

空白跟踪错误信息混淆我...

但我猜测,这个错误是由我们的标准表视图细胞包装默认创建一个ImageLoader的事实造成的 - 看https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L57

我猜想,痕迹不知何故来自https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding/Views/MvxBaseImageViewLoader.cs#L30

此图像加载程序使用DownloadCache插件,它反过来使用文件插件。 (如果你希望它永久保存磁盘上的图像,它还需要像JSON插件那样的文本序列化程序)。

如果你不想在你的应用图片 - 所以不希望这些插件 - 那么它看起来并不像你能避免这个问题,并继续使用标准电池在不改变源。

如果你想解决此问题:

1,你可以创建自己的标准表电池包装(基于https://github.com/slodge/MvvmCross/blob/v3/Cirrious/Cirrious.MvvmCross.Binding.Touch/Views/MvxStandardTableViewCell.cs#L57) 2,你可以使用创建一个自定义单元格。 3你可以注册一个虚拟/空服务来满足IMvxImageHelper<UIImage> - 这会工作,但我并不真的喜欢它作为解决方案。

如果你认为这是一个严重的问题,我们应该提供一个核心修复,请登录它在github/slodge/mvvmcross的问题。

在实际的应用程序,我不倾向于使用标准电池,我也倾向于总是需要downloadcache和文件的插件 - 所以我不亲自来过这个在我的工作中常见的问题。

+0

Thanks Stuart!这有助于......我可以解决这个问题..没什么大不了的加载插件...只是想确保我没有疯狂! :d – 2013-05-14 15:20:44