Я ищу способ сделать привязку команды «Touch» между axml и ViewModel или что-то еще, например FocusChanged и т. Д.
Простая команда «Click» работает нормально, например: local:MvxBind="{'Touch':{'Path':'CameraButtonCommand'}}" />
public IMvxCommand CameraButtonCommand
{
get
{
return new MvxRelayCommand(
() =>
{
RequestNavigate<AugRealityViewModel>(true);
})
;
}
}
Однако я пробовал другие типы событий для элемента управления (в данном случае это ImageButton), и они не обрабатываются. Когда я проверил списки событий в классе просмотра, я вижу их:
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, в то время как другие имеют общие EventHandlers, и мне интересно, является ли это причиной, по которой оно не работает.
Я также попытался прикрепить метод к этим событиям в классе View, получая надлежащий контроль с помощью метода FindViewById, и на этот раз он работает, как и ожидалось. Но что-то не получается в аксмле через Команды.
Также еще одна вещь. Событие "Click" отправляет в качестве одного из параметров объект "EventArgs", а также ссылку на объект. Я легко вижу это, если делаю это поведение в View Class, но когда я делаю это с помощью привязки, я не вижу этих аргументов при обработке команды в ViewModel.