Я уже использовал TapGestureRecognizer
и связал их с определенной командой, и эта команда работает нормально ...
Вот пример:
IrrigNetPage.xaml (просмотреть)
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding TabTappedCommand}" CommandParameter="map"/>
</StackLayout.GestureRecognizers>
<Grid IsVisible="{Binding IsGridHeaderVisible}">
<Grid.GestureRecognizers>
<TapGestureRecognizer Command="{Binding HideListOnTapCommand}"/>
</Grid.GestureRecognizers>
</Grid>
IrrigNetPage.xaml.cs
public partial class IrrigNetPage : ContentPage
{
public IrrigNetPage ()
{
InitializeComponent ();
BindingContext = new IrrigNetViewModel();
}
}
IrrigNetViewModel.cs
[AddINotifyPropertyChangedInterface]
public class IrrigNetViewModel : PopupPage
{
public ICommand TabTappedCommand { get; }
public ICommand HideListOnTapCommand { get; }
public ICommand ShowIrrigNetDetailPageCommand { get; }
public IrrigNetViewModel()
{
TabTappedCommand = new Command((tabName) => OnTapClicked(tabName.ToString()));
HideListOnTapCommand = new Command(HideListOnTap);
ShowIrrigNetDetailPageCommand = new Command(ShowDetailPage);
private void ShowDetailPage()
{
Navigation.PushPopupAsync(new IrrigNetDetailsPage());
}
private void HideListOnTap()
{
IsListVisible = !IsListVisible;
}
private void OnTapClicked(string tabName)
{
if (tabName == "location")
{
....
Так что я сделал все то же самое для TabTappedCommand и HideListOnTapCommand, что и для ShowIrrigNetDetailPageCommand, но по какой-то причине ничего не происходит, когда я нажимаю на TapGestureRecognizer.
Я пытался отладить, но я не получаю никаких исключений или ошибок ... Просто ничего не произошло ...
Я установил Rg.Plugins.Popup, потому что IrrigNetDetailsPage.xaml равен <pages:PopupPage mlns:pages="clr-namespace:Rg.Plugins.Popup.Pages;assembly=Rg.Plugins.Popup">
...
IrrigNetDetailsPage.xaml.cs
public partial class IrrigNetDetailsPage : PopupPage
{
public IrrigNetDetailsPage ()
{
InitializeComponent ();
BindingContext = new IrrigNetDetailsViewModel();
}
}
IrrigNetPage.xaml привязка (которая не работает)
<Frame.GestureRecognizers>
<TapGestureRecognizer Command="{Binding ShowIrrigNetDetailPageCommand}"/>
</Frame.GestureRecognizers>
Итак, я сделал все так же, как для TabTappedCommand
и HideListOnTapCommand
, но очевидно, что что-то упустил ...