Recuperar imagem do SignaturePadView com arquitetura MVVM
Estou desenvolvendo um aplicativo Xamarin.Forms com estrutura Prism em uma arquitetura MVVM. Preciso coletar a assinatura na tela, então decidi incluir a biblioteca SignaturePad. Com o NuGet, incluí os pacotes Xamarin.Controls.SignaturePad e Xamarin.Controls.SignaturePad.Forms. No layout da página (construído com XAML), tenho o widget de assinatura:
<signature:SignaturePadView
x:Name="padView"
HeightRequest="130"
CaptionText="Sign"
CaptionTextColor="Black"
ClearText="Clean"
ClearTextColor="Black"
BackgroundColor="White"
SignatureLineColor="Black"
StrokeWidth="2"
StrokeColor="Black"
BindingContext="{Binding Sign, Mode=TwoWay}" />
No ViewModel, a ligação do widget:
private SignaturePadView _sign;
public SignaturePadView Sign
{
get { return _sign; }
set { SetProperty(ref _sign, value); }
}
No construtor ViewModel:
_sign = new SignaturePadView();
Há também um botão, na ação desse botão, preciso ler a imagem do sinal e salvá-la no banco de dados. Eu tentei isso:
Stream sig = await Sign.GetImageStreamAsync(SignatureImageFormat.Png);
var signatureMemoryStream = sig as MemoryStream;
byte[] data = signatureMemoryStream.ToArray();
Todo esse código está escrito no projeto portátil. Infelizmente, ele não funciona porque o objeto sig é sempre nulo. Eu acho que o problema é a ligação do widget, mas não tenho certeza.