Я пытаюсь вызвать команду, которую можно связать с помощью Tapgesture ... Почему TabTappedCommand ничего не делает ...
IrrigNetPage.xaml
<StackLayout BackgroundColor="{Binding SelectedTabColor}"
x:Name="StackService">
<StackLayout.GestureRecognizers>
<TapGestureRecognizer Command="{Binding TabTappedCommand}" CommandParameter="service"/>
</StackLayout.GestureRecognizers>
<Image Source="{Binding ServiceTabIcon}"
HorizontalOptions="Start"
VerticalOptions="Center"
WidthRequest="16"
HeightRequest="16"
Aspect="AspectFit"
x:Name="ServiceIcon"/>
<Label Text="{i18n:Translate Service}"
VerticalOptions="FillAndExpand"
HorizontalOptions="FillAndExpand"
VerticalTextAlignment="Center"
HorizontalTextAlignment="Start"
TextColor="{Binding SelectedTabTextColor}"
x:Name="ServiceText"/>
</StackLayout>
IrrigNetViewModel.cs
public string ServiceTabIcon { get; set; } = "services_sel.png";
public string LocationTabIcon { get; set; } = "location.png";
public string MapTabIcon { get; set; } = "location.png";
public string ListHederIcon { get; set; } = "service_irrig.png";
public ICommand TabTappedCommand { get; }
public IrrigNetViewModel()
{
TabTappedCommand = new Command((tabName) => OnTapClicked(tabName.ToString()));
}
private void OnTapClicked(string tabName)
{
string serviceBlackIcon = "services.png";
string locationWhiteIcon = "location_sel.png";
string mapWhiteIcon = "location_sel.png";
if (tabName == "service")
{
ServiceTabIcon = "services_sel.png";
LocationTabIcon = "location.png";
MapTabIcon = "location.png";
}
else if (tabName == "location")
{
ServiceTabIcon = "services.png";
LocationTabIcon = "location_sel.png";
MapTabIcon = "location.png";
}
else
{
ServiceTabIcon = "services.png";
LocationTabIcon = "location.png";
MapTabIcon = "location_sel.png";
}
}
Итак, смысл состоит в том, чтобы изменить значки выбранного stackLayout (и вернуться к значкам по умолчанию, когда он не выбран), но по какой-то причине TabTappedCommand
не работает ... Чего мне не хватает ...