如何在签名板xamarin表单上绑定签名字节数组?

时间:2016-07-06 11:21:34

标签: xamarin.android xamarin.forms signaturepad

我的xamarin表单应用程序中有一个签名板。用户在签名板上签名并移动到下一个屏幕。但是当用户返回签名板屏幕时,先前的签名将从签名板中删除。如何设置签名不应该删除,直到用户在应用程序的当前状态?

当用户移动到下一个屏幕时,我将签名值保存为字节数组。那么我可以在签名板上绑定这个字节数组来显示签名吗?

此致 阿南德杜比

1 个答案:

答案 0 :(得分:4)

由于这是Xamarin Forms,我假设你正在使用Allan Ritchie的Acr.XamForms.SignaturePad类。

SignaturePadView类公开了一种方法:LoadDrawPoints,允许您将签名数据加载到视图中。由于这是一种方法,您无法真正对其进行数据绑定,但您可以将代码添加到托管视图以加载签名:

// NOTE: The below assumes that
// A) You're using MVVM (as you should :) )
// B) The ViewModel class name is MyViewModelClassName (change appropriately)
// C) The property on the VM that exposes the signature points is named SignaturePoints (change appropriately)

protected override OnAppearing() {
  LoadSignature();
}

protected override OnBindingContextChanged() {
  LoadSignature();
}

private void LoadSignature() {
    var vm = this.BindingContext as MyViewModelClassName;
    if (vm != null && vm.SignaturePoints != null) {
      this.signaturePadView.LoadDrawPoints(vm.SignaturePoints);
    }
}

最后,您提到您将签名保存为字节数组;上面的代码假设它是一个DrawPoint的数组,它是一对浮点数,所以你需要反转你当前正在进行的任何转换。