Для моего текущего проекта мне нужно захватить нажатие кнопки и выпустить события в Xamarin.Forms. Но я хочу, чтобы все было свободно связано с помощью Prism.
Сначала я использовал свойство Command, например, так:
<Button x:Name="ButtonForward" Command="{Binding MoveUpCommand}" />
Но свойство Command срабатывает только при отпускании кнопки,Чтобы сделать отдельные нажатые и отпущенные действия, я использовал события в XAML:
<Button x:Name="ButtonForward" Pressed="ButtonForward_Pressed" Released="ButtonMove_Released"/>
и вызвал команды вручную в обработчиках событий в коде:
private void ButtonMove_Released(object sender, System.EventArgs e)
{
var vm = BindingContext as DirectControlViewModel;
if (vm.MoveStopCommand.CanExecute(null))
vm.MoveStopCommand.Execute(null);
}
private void ButtonForward_Pressed(object sender, System.EventArgs e)
{
var vm = BindingContext as DirectControlViewModel;
if (vm.MoveUpCommand.CanExecute(null))
vm.MoveUpCommand.Execute(null);
}
Проблема в том, что онобольше не имеет слабой связи, поскольку View теперь должен знать свою ViewModel. Есть ли способ иметь кнопку, которая имеет отдельные команды для нажатых и отпущенных событий, сохраняя слабую связь между View и ViewModel? Любая помощь будет оценена.