首页 文章

Xamarin形式:I18n-便携式铸造错误

提问于
浏览
0

我正在使用VS 2017中的Xamarin表单开发跨平台应用程序,使用I18n便携式NuGet-Package进行国际化(请参阅http://xleon.net/localization/xamarin/pcl/share-locales/i18n/portable/dotnet/2017/02/09/easy-and-cross-platform-localization-for-xamarin-and-dotnet/) . 到目前为止,我得到了一切,除了一件事 .

不幸的是,我被困在最后一部分 - 根据包自述文件 - 我需要在baseviewmodel上创建一个代理对象 . 我只是不知道该怎么做,网上的文档似乎对我没有帮助 .

什么/ baseviewmodel在哪里?!它是我的示例PCL解决方案的 App.xaml.cs 吗?这是程序包的作者建议集成的代码:

public abstract class BaseViewModel
{
    public I18N Strings => I18N.Current; // causes error, see below
}

上面的代码在尝试将其集成为新类时会导致错误:

错误CS0266:类型“I18NPortable.II18N”无法隐式转换为“I18NPortable.I18N” . 已经存在显式转换(转换缺失?) .

谢谢你的每一个提示 .

1 回答

  • 0

    对于 BaseViewModel ,您将需要使用依赖于ViewModel的MVVM框架 . 然后,您可以创建一个自定义基类,您的其他视图模型将继承该基类来实现此目的 . Xamarin不是开箱即用的,因为当使用Xamarin Forms时MVVM不是必须的,并且有许多MVVM框架 .

    你得到的错误基本上是对 I18N.Current 的调用返回一个II18N类型的对象,这是一个你要分配给显式类型的接口 . 您可以尝试将其更改为:

    public abstract class BaseViewModel
    {
        public II18N Strings => I18N.Current;
    }
    

相关问题