在我的一个Xamarin.Forms应用程序中,我想根据IsEnabled属性更改DatePicker的文本颜色。
我尝试了两种已知的方法:
1)使用样式
在App.xaml中:
<Style x:Key="DatePickerStyle" TargetType="DatePicker">
<Style.Triggers>
<Trigger TargetType="DatePicker" Property="IsEnabled" Value="True">
<Setter Property="TextColor" Value="Blue" />
</Trigger>
<Trigger TargetType="DatePicker" Property="IsEnabled" Value="False">
<Setter Property="TextColor" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
在View.xaml中:
<DatePicker IsEnabled="{Binding IsEnabled}" Style="{StaticResource DatePickerStyle}" ... />
2)在XAML中添加触发器
<ViewCell>
<DatePicker IsEnabled="{Binding IsEnabled}" ...>
<DatePicker.Triggers>
<Trigger TargetType="DatePicker" Property="IsEnabled" Value="True">
<Setter Property="TextColor" Value="Blue" />
</Trigger>
<Trigger TargetType="DatePicker" Property="IsEnabled" Value="False">
<Setter Property="TextColor" Value="Red" />
</Trigger>
</DatePicker.Triggers>
</DatePicker>
</ViewCell>
两种方法都导致“ System.InvalidOperationException:可绑定而不是AssociatedType的实例”异常。
是否可以使用在IsEnabled属性包含触发器的应用样式来更改选择器的文本颜色?行为会是更好的方法吗?
答案 0 :(得分:0)
我在DatePicker上遇到了类似的问题,在Xamarin论坛或msdn上找不到任何解释。我终于使用了以下变通办法,并且有效
// loop through all images
JStringToString(Data.getClipData.getItemAt(i).getUri.toString
另请参阅Visual State Manager。