2

xamarin フォーム アプリに署名パッドがあります。ユーザーが署名パッドにサインオンし、次の画面に移動します。ただし、ユーザーが署名パッド画面に戻ると、以前の署名が署名パッドから削除されます。ユーザーがアプリの現在の状態で行うまで、署名を削除しないように設定するにはどうすればよいですか?

ユーザーが次の画面に移動したときに、署名値をバイト配列として保存します。このバイト配列を署名パッドにバインドして、署名を表示できますか?

よろしく、 アナンド・デュビー

4

1 に答える 1

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ため、現在行っている変換を逆にする必要があります。

于 2016-07-06T12:47:52.297 に答える