首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Catel与Xamarin.Forms

Catel与Xamarin.Forms
EN

Stack Overflow用户
提问于 2017-08-28 12:34:14
回答 1查看 172关注 0票数 2

我不能让Xamarin.Forms和Catel一起工作。

我看到了这个示例,但它似乎已经过时了。

当我通过NuGet下载Catel时,会得到不同版本的不同问题:

  • v5.1: 编译时异常: Exception while loading assemblies: System.IO.FileNotFoundException: Could not load assembly 'Obsolete, Version=4.2.4.0, Culture=neutral, PublicKeyToken=1ca091877d12ca03'. Perhaps it doesn't exist in the Mono for Android profile?
  • v5.0: 运行时异常(创建new App();时): Could not load signature of Catel.MVVM.IViewModelFactory:CreateViewModel due to: Could not resolve type with token 01000061 (from typeref, class/assembly System.ComponentModel.IDataErrorInfo, Catel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null) assembly:Catel.Core, Version=5.0.0.0, Culture=neutral, PublicKeyToken=null type:System.ComponentModel.IDataErrorInfo member:<none>
  • v4.5.*

创建应用程序对象时的

代码语言:javascript
运行
复制
- Using `ViewModelBase`:

运行时异常: System.TypeLoadException:无法用令牌 01000097解析类型(来自typeref、类/程序集System.Reflection.BindingFlags、Catel.Core、Version=4.5.4.0、Culture=neutral、PublicKeyToken=null)

-我对IViewModel的实施:

好的,MainPage加载,绑定工作,构造器通过参数获得正确的服务,但是,例如,当我从命令调用'_uiVisualizerService.Show( subPageViewModel )‘时,它会抛出'InvalidCastException’。异常前的Catel中的最后一行:Injecting properties into type 'SubPage' after construction。但是SubPage和SubPageViewModel绝对是空的。

详细信息:

---> System.InvalidCastException: Specified cast is not valid. at Catel.Services.UIVisualizerService+<ShowAsync>d__9.MoveNext () [0x00096] in C:\CI_WS\Ws\97969\Source\Catel\src\Catel.MVVM\Catel.MVVM.Xamarin.Forms\Services\UIVisualizerService.cs:151 at System.Threading.Tasks.Task.ThrowIfExceptional (System.Boolean includeTaskCanceledExceptions) [0x00011] in <183b200ee49746d48fc781625979428e>:0 at System.Threading.Tasks.Task'1[TResult].GetResultCore (System.Boolean waitCompletionNotification) [0x0002b] in <183b200ee49746d48fc781625979428e>:0 at System.Threading.Tasks.Task'1[TResult].get_Result () [0x0000f] in <183b200ee49746d48fc781625979428e>:0 at Catel.Services.UIVisualizerService.Show (Catel.MVVM.IViewModel viewModel, System.EventHandler``1[TEventArgs] completedProc) [0x00000] in C:\CI_WS\Ws\97969\Source\Catel\src\Catel.MVVM\Catel.MVVM.Xamarin.Forms\Services\UIVisualizerService.cs:125 at XamarinFormsCatel.ViewModels.MainPageViewModel.OnGo () [0x00015] in C:\!Work\Test\XamarinFormsCatel\XamarinFormsCatel\XamarinFormsCatel\XamarinFormsCatel\ViewModels\MainPageViewModel.cs:34 at Xamarin.Forms.Command+<>c__DisplayClass3_0.<.ctor>b__0 (System.Object o) [0x00000] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Core\Command.cs:73 at Xamarin.Forms.Command.Execute (System.Object parameter) [0x00000] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Core\Command.cs:107 at Xamarin.Forms.Button.Xamarin.Forms.IButtonController.SendClicked () [0x0000a] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Core\Button.cs:121 at Xamarin.Forms.Platform.Android.AppCompat.ButtonRenderer+ButtonClickListener.OnClick (Android.Views.View v) [0x0000b] in C:\BuildAgent3\work\ca3766cfc22354a1\Xamarin.Forms.Platform.Android\AppCompat\ButtonRenderer.cs:298 at Android.Views.View+IOnClickListenerInvoker.n_OnClick_Landroid_view_View_ (System.IntPtr jnienv, System.IntPtr native__this, System.IntPtr native_v) [0x0000f] in <71828dd8fb5f4508815e23d6996c45c2>:0 at (wrapper dynamic-method) System.Object:4c9f6786-8ab0-4bd8-bdb1-4cc7a3d7ddc7 (intptr,intptr,intptr) -> (Inner Exception #0) System.InvalidCastException: Specified cast is not valid. at Catel.Services.UIVisualizerService+<ShowAsync>d__9.MoveNext () [0x00096] in C:\CI_WS\Ws\97969\Source\Catel\src\Catel.MVVM\Catel.MVVM.Xamarin.Forms\Services\UIVisualizerService.cs:151 <---

我所做的:

  • android项目中的android引用从MonoAndroid更改为portable-net45+wp8+win8+wpa81+MonoAndroid10+MonoTouch10+Xamarin.iOS10+UAP10。如果不这样做,编译将失败。
  • MainPage.xaml <catel:ContentPage ... xmlns:catel="clr-namespace:Catel.Windows.Controls;assembly=Catel.MVVM">
  • MainPageViewModel.cs public class MainPageViewModel : ViewModelBase { }
  • App.cs public class App : Catel.Xamarin.Forms.Application<Views.MainPage> { }
  • MainActivity.cs (安卓) 公共类MainActivity :MainActivity{ TabLayoutResource = Resource.Layout.Tabbar;ToolbarResource = Resource.Layout.Toolbar;base.OnCreate( bundle );Xamarin.Forms.Forms.Init(此包);var app =新应用程序( );LoadApplication( app );}}

窗户7,64x。Xamarin.Forms: 2.3.4.267

任何帮助都非常感谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-08-29 08:59:56

该团队正在努力改进对Xamarin.Forms的支持。目前还没有任何例子。我们的期望是在接下来的几个月内完成对v5对Xamarin.Forms的支持。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/45919150

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档