axmlとViewModelの間、またはFocusChangedなどのようなものの間で「タッチ」コマンドバインディングを行う方法を探しています.
単純な「クリック」コマンドは次のようにうまく機能します: local:MvxBind="{'Touch':{'Path':'CameraButtonCommand'}}" />
public IMvxCommand CameraButtonCommand
{
get
{
return new MvxRelayCommand(
() =>
{
RequestNavigate<AugRealityViewModel>(true);
})
;
}
}
ただし、コントロールの他のイベント タイプ (この場合は ImageButton) を試しましたが、それらは処理されていません。View Class のイベント リストを確認すると、次のように表示されます。
public event EventHandler Click;
public event EventHandler<View.CreateContextMenuEventArgs> ContextMenuCreated;
public event EventHandler<View.FocusChangeEventArgs> FocusChange;
public event EventHandler<View.KeyEventArgs> KeyPress;
public event EventHandler<View.LongClickEventArgs> LongClick;
Click イベントのみに一般的な EventHandler がアタッチされていますが、他のイベントには一般的な EventHandler があり、それが機能しない理由であるかどうか疑問に思っています。
また、FindViewById メソッドによって適切なコントロールを取得する View クラスのこれらのイベントにメソッドをアタッチしようとしましたが、今回は期待どおりに動作します。しかし、どういうわけか、コマンドを使用して axml でそれを行うことはできません。
また、もう一つ。「クリック」イベントは、「EventArgs」オブジェクトをパラメーターの 1 つとして送信し、オブジェクト参照も送信します。View Class でこの動作を行うと簡単にわかりますが、バインドでこれを行うと、ViewModel で Command を処理しているときにこれらの引数が表示されません。