Установить цвет текста DatePicker в соответствии со свойством IsEnabled - PullRequest
0 голосов
/ 07 сентября 2018

В одном из моих приложений Xamarin.Forms я хочу изменить цвет текста DatePicker в соответствии со свойством IsEnabled.

Я пробовал два известных способа:

1) Использование стиля

В приложении. 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? Будет ли поведение лучше?

...