Привязка к RadioButtons IsChecked очищается после снятия флажка - PullRequest
1 голос
/ 13 мая 2010

У меня есть группа radioButton, и каждая кнопка привязана к свойству Enum

<RadioButton Name="rbFixedDiscount" IsChecked="{Binding Path=DiscountType, Mode=TwoWay, Converter={StaticResource EnumConverter},ConverterParameter=Fixed, UpdateSourceTrigger=PropertyChanged}" >Fixed:</RadioButton>

<RadioButton Name="rbPercentDiscount" Grid.Row="1" IsChecked="{Binding Path=DiscountType, Mode=TwoWay, Converter={StaticResource EnumConverter},ConverterParameter=Percent, UpdateSourceTrigger=PropertyChanged}">Percent:</RadioButton>

<RadioButton Name="rbFreeNightsDiscount" Grid.Row="2" IsChecked="{Binding Path=DiscountType, Mode=TwoWay, Converter={StaticResource EnumConverter},ConverterParameter=FreeNights, UpdateSourceTrigger=PropertyChanged}">Free Nights:</RadioButton>

Всякий раз, когда я нажимаю взад-вперед в пользовательском интерфейсе, свойство позади обновляется только тогда, когда я щелкаю новую RB, если я нажимаю одну из кнопок назад (поэтому я делаю ее Проверено -> Не проверено -> Проверено) свойство за привязка не обновляется, привязка была очищена, я думаю, это потому, что ClearValue () вызывается при снятии флажка и Item. В любом случае я могу сохранить привязку, нажимая туда-сюда.

1 Ответ

5 голосов
/ 13 мая 2010

Это известная и надоедливая ошибка с переключателями. К счастью, есть несколько обходных путей, вот несколько, которые я видел:

  1. Восстановите список в качестве переключателя и используйте его вместо этого.
  2. Объявить привязку в шаблоне управления. ( ссылка )
  3. Поместите каждый переключатель в отдельную группу и управляйте свойством отмеченных / не отмеченных с помощью преобразователя значений. ( ссылка )

Надеюсь, одно из этих решений подойдет вам!

...