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}" />
Другие вопросы по тегам