Xamarin.Forms 如何在 VisualState 中使用 Xamarin Community Toolkit TouchEffect
Xamarin.Forms how use Xamarin Community Toolkit TouchEffect in VisualState
我正在使用 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:无法找到 public -- 或可访问的内部 -- 静态字段,静态 属性、“xct:TouchEffect”中名为“Command”的常量或枚举值。
<Setter Property="{x:Static xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />
我也尝试过使用 Type,但出现此错误:无法解析类型“TouchEffect.Command”
<Setter Property="{x:Type xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />
这是正确的方法,我的问题是因为其他原因,我的代码在 DataTemplate 中并且必须引用页面视图模型。
在正常情况下,这会起作用:
<Setter Property="xct:TouchEffect.Command" Value="{Binding sampleCommand}" />
在我的例子中,在 DataTemplate 中:
<Setter Property="xct:TouchEffect.Command" Value="{Binding Source={x:Reference SamplePage}, Path=BindingContext.sampleCommand}" />
我正在使用 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:无法找到 public -- 或可访问的内部 -- 静态字段,静态 属性、“xct:TouchEffect”中名为“Command”的常量或枚举值。
<Setter Property="{x:Static xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />
我也尝试过使用 Type,但出现此错误:无法解析类型“TouchEffect.Command”
<Setter Property="{x:Type xct:TouchEffect.Command}" Value="{Binding sampleCommand}" />
这是正确的方法,我的问题是因为其他原因,我的代码在 DataTemplate 中并且必须引用页面视图模型。
在正常情况下,这会起作用:
<Setter Property="xct:TouchEffect.Command" Value="{Binding sampleCommand}" />
在我的例子中,在 DataTemplate 中:
<Setter Property="xct:TouchEffect.Command" Value="{Binding Source={x:Reference SamplePage}, Path=BindingContext.sampleCommand}" />