У меня есть RadioButton, который динамически настраивается как часть DataCemplate ItemsControl.Изменить стиль RadioButton в зависимости от свойства
<RadioButton GroupName="Ratings">
<RadioButton.Content>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Score}" />
<TextBlock Text=" - " />
<TextBlock Text="{Binding Description}" />
</StackPanel>
</RadioButton.Content>
</RadioButton>
У меня есть два предопределенных стилей (MyCheckedStyle1
и MyUncheckedStyle2
), которые работают нормально, когда я индивидуально установить Style=
свойство RadioButton, но я не нашел способ изменить стиль, основанный на это IsChecked собственность.
Большинство методов я стараюсь, чтобы попытаться дать мне исключение о Style object is not allowed to affect the Style property of the object to which it applies.
(например, запускающее ContentTemplate)
Так псевдокода
if IsChecked = true then
style = MyCheckedStyle1
else if IsChecked = false then
style = MyUncheckedStyle1
Я могу сделать это с кодой, но я стараюсь, чтобы избежать этого, если возможно и поставить логику в XAML.
Применить стиль к «Родительскому» радио, а затем с помощью триггера изменить стиль радио по свойству IsChecked. Другой способ применения стиля к самому радио , а затем с помощью триггера изменить свойство ControlTemplate по IsChecked. – codeDom
Стили не определены мной, и я не могу их изменить. Ваш первый вариант звучит так, как будто он может работать, можете ли вы дать ответ, который еще больше объясняет, что вы имеете в виду? –
Не можете ли вы просто изменить стиль в коде по проверенным или непроверенным событиям? –