使用AssetImagePath加载图像导致Lang绑定MvxException:PropertyName必须以字母开头

时间:2013-08-14 18:48:29

标签: xamarin.android mvvmcross

在一个简单的MvvmCross项目中,我正在尝试从Android上的Asset / image.png加载图像。我搜索过这个,发现这是一种应该有效的方法。

图像设置为AndroidAsset和CopyAlways,并位于Asset文件夹中。 在ViewModel中我有这个:

private string _image = "image.png";
    public string Image
    { 
        get { return _image; }
        set { _image = value; RaisePropertyChanged(() => Image); }
    } 

在axml

<ImageView
    android:src="@android:drawable/ic_menu_gallery"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:id="@+id/imageView1"
    local:MvxBind="{'AssetImagePath':{'Path':'Image'}}" />

在设置

 protected override void FillTargetFactories(IMvxTargetBindingFactoryRegistry registry)
    {
        registry.RegisterCustomBindingFactory<ImageView>("AssetImagePath",
                                                       imageView => new MvxImageViewImageTargetBinding(imageView));
        base.FillTargetFactories(registry);
    }

当我运行应用程序时,不会显示任何内容,并且日志会报告:

Problem parsing Lang binding MvxException: PropertyName must start with letter - position 0 in {'AssetImagePath':{'Path':'Image'}} - char {

该错误意味着什么?

1 个答案:

答案 0 :(得分:0)

看起来你正在使用旧的瑞士风格的json装订。切换到瑞士 - 请参阅“{mvvmcross数据绑定”的https://github.com/slodge/MvvmCross/wiki/Databinding部分

另外,请注意问题https://github.com/slodge/MvvmCross/issues/372 - 与https://github.com/slodge/MvvmCross/issues/311相关联(包含解决方法)