xamarin フォーム アプリに署名パッドがあります。ユーザーが署名パッドにサインオンし、次の画面に移動します。ただし、ユーザーが署名パッド画面に戻ると、以前の署名が署名パッドから削除されます。ユーザーがアプリの現在の状態で行うまで、署名を削除しないように設定するにはどうすればよいですか?
ユーザーが次の画面に移動したときに、署名値をバイト配列として保存します。このバイト配列を署名パッドにバインドして、署名を表示できますか?
よろしく、 アナンド・デュビー
xamarin フォーム アプリに署名パッドがあります。ユーザーが署名パッドにサインオンし、次の画面に移動します。ただし、ユーザーが署名パッド画面に戻ると、以前の署名が署名パッドから削除されます。ユーザーがアプリの現在の状態で行うまで、署名を削除しないように設定するにはどうすればよいですか?
ユーザーが次の画面に移動したときに、署名値をバイト配列として保存します。このバイト配列を署名パッドにバインドして、署名を表示できますか?
よろしく、 アナンド・デュビー
これは 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
ため、現在行っている変換を逆にする必要があります。