XAML Xamarin.表单如何在VisualState中使用Xamarin社区工具包TouchEffect

wgxvkvu9  于 2022-12-16  发布在  其他
关注(0)|答案(1)|浏览(145)

我正在使用VisualState在XAML中实现一个条件,但是我不知道如何在VisualState中更改效果(如Xamarin Community Toolkit TouchEffect)的属性,有什么建议吗?

<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:无法在“xct:TouchEffect”中找到名为“Command”的公共或可访问的内部静态字段、静态属性、常量或枚举值。

<Setter Property="{x:Static xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />

我也尝试使用类型,但我得到这个错误:无法解析类型“TouchEffect.Command”

<Setter Property="{x:Type xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />
tct7dpnv

tct7dpnv1#

这是正确的方法,我的问题是因为其他的东西,我有一个DataTemplate内的代码,必须引用页面视图模型。
在正常情况下,这将起作用:

<Setter Property="xct:TouchEffect.Command" Value="{Binding sampleCommand}" />

在DataTemplate中的示例中:

<Setter Property="xct:TouchEffect.Command" Value="{Binding Source={x:Reference SamplePage}, Path=BindingContext.sampleCommand}" />

相关问题