在一个简单的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 {
该错误意味着什么?
答案 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相关联(包含解决方法)