2

byte [](画像)をaxmlビューの画像コントロールにバインドする方法を知っている人はいますか?私のViewModelはMvxViewModelから継承します。他のすべてのバインディングはうまく機能しますが、その画像をバインドする方法が見つかりません。

4

2 に答える 2

2

カスタム UI コントロールを使用してこれをバインドできると思います。

これを行うには、次のようにする必要があります。

  1. MyImageView新しいものを継承するImageView
  2. デフォルトのコンストラクターを追加します(コンテキストと属性を基本コンストラクターに渡します)
  3. RawImageに新しいプロパティを追加し、次のようMyImageViewに実装します。

    private byte[] _rawImage;
    public byte[] RawImage
    {
         get { return _rawImage; }
         set 
         {
                 _rawImage = value;
                 if (_rawImage == null)
                         return;
    
                 var bitmap = BitmapFactory.DecodeByteArray(_rawImage, 0,_rawImage.Length);
                 SetImageBitmap(bitmap);
         }
    }
    

MyImageViewその後、通常の .xml の代わりに axml でそのコントロールを使用できますImageView

注 - 上記のコードはテストされていませんが、ビューで byte[] を取得すると、どの Droid コードを使用するかがわかると思います。


これに対する別のアプローチとして、カスタム バインディングを使用しbyte[]て a を法線にバインドすることもできます。「MvvmCross でカスタム バインド プロパティを実行するにはどうすればよいですか」ImageViewのカスタム バインディングの例を参照してください。

于 2013-01-07T17:50:52.227 に答える