C# 将RadioButton绑定到布尔应用程序设置会破坏默认RadioButton行为
我有一个带有三个C# 将RadioButton绑定到布尔应用程序设置会破坏默认RadioButton行为,c#,winforms,data-binding,C#,Winforms,Data Binding,我有一个带有三个单选按钮的表单(radioButton1,radioButton2,和radioButton3): 在我的应用程序设置中,我有三个布尔值(Value1、Value2和Value3): 我将每个RadioButton的Checked属性绑定到应用程序设置中的三个值之一。也就是说,我将radioButton1.选中的Value1,radioButton2.选中的到Value2,以及radioButton3.选中的到Value3: 这些绑定会更改单选按钮的行为。在没有绑定的情况下
单选按钮的表单(radioButton1
,radioButton2
,和radioButton3
):
在我的应用程序设置中,我有三个布尔值(Value1
、Value2
和Value3
):
我将每个RadioButton
的Checked
属性绑定到应用程序设置中的三个值之一。也就是说,我将radioButton1.选中的Value1
,radioButton2.选中的到Value2
,以及radioButton3.选中的到Value3
:
这些绑定会更改单选按钮的行为。在没有绑定的情况下,单选按钮
显示单击未选中的单选按钮
将取消选中选中的按钮并选中已单击的按钮的预期行为。使用绑定,单击未选中的单选按钮
将取消选中选中的单选按钮,但不选中已单击的单选按钮。需要再次单击以检查所需的按钮
为什么会这样?如何使用应用程序设置的数据绑定,而不破坏RadioButtons
的选中/取消选中行为?我可以猜测,只有设置中的值设置为false的RadioButton2
和RadioButton3
才会发生这种情况。Radiobutton1应具有所需的功能性
您所要做的就是将设置范围从User
设置为Application
,您可以在加载表单时使单选按钮等于所需的bool,然后在更改单选按钮时,使用其事件处理程序更改要绑定的bool的值作为解决方法。@karlsweeney,如果我正确理解您的评论,您是说我可以完全绕过数据绑定,并使用CheckedChanged事件手动设置设置?这是一个不错的解决办法,如果我不能使数据绑定工作正常,我可能会尝试。谢谢您的提醒。@apomeme,您建议的更改(将设置范围从User
设置为Application
)有效,但我不知道为什么。你能对你的答案再解释一下吗?(我不明白第一句是怎么说的)看看这个:谢谢;这是一个有用的链接。我想我更能理解为什么单选按钮有问题。我没有看到关于设置范围的任何内容,因此您的解决方案仍然有些神秘。