2010-05-13 84 views
0

之後被清除我有一個單選按鈕組,每個按鈕綁定到一個枚舉財產綁定到單選按鈕器isChecked uncheking

<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> 

每當我點擊來回在UI財產僅次於得到更新,當我點擊一個新的RB,如果我點擊其中一個按鈕(所以我使它檢查 - >未檢查 - >檢查)綁定後面的屬性不刷新,它的綁定已被清除我認爲這是因爲ClearValue()獲取在取消選中和項目時調用。 無論如何,我可以保持綁定活着,同時點擊來回。

回答

5

這是帶有單選按鈕的known and annoying bug。幸運的是,有幾個解決方法,這裏有一些我見過的:

  1. 將一個listbox改爲一個單選按鈕,並用它來代替。
  2. 聲明控件模板中的綁定。 (link
  3. 將每個單選按鈕放在不同的組中,並通過值轉換器控制其選中/未選中的屬性。 (link

希望這些解決方案之一將爲您工作!

+0

似乎在.NET 4.0中修復。 – 2013-04-22 15:15:15