Ошибка XAML «Элемент `IsChecked` не распознан или доступен» для триггера в стиле RadioButton

#c# #xaml

#c# #xaml

Вопрос:

У меня есть два RadioButton элемента, для которых я хотел бы изменить текст на основе их IsChecked состояния, но Visual Studio сообщает мне, что IsChecked и Content они не распознаны / доступны. Приведенный ниже код одинаков для обеих кнопок.

 <RadioButton GroupName="{Binding CommunicatingGroupName}" IsChecked="{Binding IsCommunicating}" IsEnabled="{Binding IsActive}" FontSize="11" TextOptions.TextFormattingMode="Display" Content="ACTIVE" >
    <RadioButton.Style>
        <Style TargetType="{StaticResource ButtonBlue}">
            <Style.Triggers>
                <Trigger Property="IsChecked"  Value="true">
                    <Setter Property="Content" Value="ACTIVE" />
                </Trigger>
                <Trigger Property="IsChecked" Value="false">
                    <Setter Property="Content" Value="STANDBY" />
                </Trigger>
                <Trigger Property="IsEnabled" Value="false">
                    <Setter Property="Content" Value="ACTIVE" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </RadioButton.Style>
</RadioButton>
  

У меня есть ToggleButtons в другом месте файла, которые работают с теми же <Style.Triggers> элементами, и, насколько я знаю, должны работать одинаково для этих RadioButton элементов. Я упускаю что-то конкретное для RadioButtons? Я перестроил, перезапустил VS и т.д., И ошибки сохраняются.

Ответ №1:

Посмотрите на эту строку:

 <Style TargetType="{StaticResource ButtonBlue}">
  

Вы задаете целевой тип чему-то, что выглядит как style. Вероятно, вы пытались написать что-то вроде этого:

 <Style TargetType="{x:Type RadioButton}" BasedOn="{StaticResource ButtonBlue}">
  

Комментарии:

1. Да, я ввел его с ошибкой. Эта вторая строка даже похожа на то, как выглядят другие кнопки переключения выше в файле … dangit