0

シンプルな MvvmCross プロジェクトで、Android の Asset/image.png から画像を読み込もうとしています。これを検索したところ、これが機能する1つの方法であることがわかりました。

Image は 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 {

そのエラーはどういう意味ですか?

4

1 に答える 1

0

古いスイス以前のスタイルのjsonバインディングを使用しているようです。Swiss に切り替えます - 「mvvmcross データ バインディング」のhttps://github.com/slodge/MvvmCross/wiki/Databindingセクションを参照してください。

また、問題https://github.com/slodge/MvvmCross/issues/372に注意してください - https://github.com/slodge/MvvmCross/issues/311にリンクされています(回避策が含まれています)

于 2013-08-15T03:18:25.043 に答える