Xamarin.Forms, как использовать Xamarin Community Toolkit TouchEffect в VisualState
Я реализую условие в своем XAML с помощью VisualState, но я не знаю, как я могу изменить свойство эффекта, такого как TouchEffect инструментария сообщества Xamarin, в VisualState, какие-либо предложения?
<StackLayout HorizontalOptions="FillAndExpand"
VerticalOptions="FillAndExpand"
BackgroundColor="Red"
HeightRequest="200">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup>
<VisualState x:Name="test">
<VisualState.StateTriggers>
<CompareStateTrigger Property="{Binding sampleBool}" Value="true" />
</VisualState.StateTriggers>
<VisualState.Setters>
<!--Here in the Property there should be some way to refer to the Command property of the TouchEffect-->
<Setter Property="xct:TouchEffect.Command" Value="{Binding sampleCommand}" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</StackLayout>
Я пробовал ссылаться таким образом, но это вызывает следующую ошибку: x: Static: невозможно найти общедоступное или доступное внутреннее статическое поле, статическое свойство, значение const или enum с именем «Command» в «xct: TouchEffect ".
<Setter Property="{x:Static xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />
Я также пытался использовать Type, но получаю эту ошибку: Не удается разрешить тип "TouchEffect.Command"
<Setter Property="{x:Type xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />
1 ответ
Это был правильный способ сделать это, моя проблема была из-за чего-то еще, у меня был код внутри DataTemplate, и мне пришлось ссылаться на модель просмотра страницы.
В обычном случае это сработает:
<Setter Property="xct:TouchEffect.Command" Value="{Binding sampleCommand}" />
В моем случае внутри DataTemplate:
<Setter Property="xct:TouchEffect.Command" Value="{Binding Source={x:Reference SamplePage}, Path=BindingContext.sampleCommand}" />