我的xamarin表单应用程序中有一个签名板。用户在签名板上签名并移动到下一个屏幕。但是当用户返回签名板屏幕时,先前的签名将从签名板中删除。如何设置签名不应该删除,直到用户在应用程序的当前状态?
当用户移动到下一个屏幕时,我将签名值保存为字节数组。那么我可以在签名板上绑定这个字节数组来显示签名吗?
此致 阿南德杜比
答案 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
的数组,它是一对浮点数,所以你需要反转你当前正在进行的任何转换。