ビュー内に 3 つのボタン (1、2、3) を含むカスタム Xamarin Forms コントロールを作成しています。GaugeView
この例のために、単に a と呼びましょう。現在の設定方法は次のとおりです。
- に
GuageView
は、iOS と Android の両方に と呼ばれるカスタム レンダラーがありますGuageViewRenderer
。 - は、、、および のイベントハンドラ
GuageView
を公開します。Clicked1
Clicked2
Clicked3
- は、、、および のプロパティを公開
GuageView
します。ICommand
Click1
Click2
Click3
問題は、カスタム レンダラーからイベント ハンドラーを起動する必要があることです。これは、ボタンの 1 つが押されたことをネイティブ プラットフォーム コントロールだけが認識しているためです。GuageView
共有コードが存在する にイベントをバブルアップするにはどうすればよいでしょうか?
コマンドとイベント ハンドラーをカスタム レンダラー内に接続することを計画していましたが、イベントは元のクラス ( GuageView
) 内からのみ発生させることができるため、非常に手間がかかります。
これを構造化するより良い方法はありますか?私がやろうとしている主なことは、プラットフォーム ネイティブ ゲージを公開し、そのボタンを接続して、共有コード ( GuageView
) 内のイベント ハンドラーがイベントの起動を取得するようにすることです。