【发布时间】:2013-12-31 00:20:02
【问题描述】:
我有一组单选按钮。在某些情况下,我希望用户能够选择多个这些单选按钮。
我使用的逻辑是,如果我希望用户只选择一个单选按钮,我会将它们添加到同一个单选按钮组中。如果我希望用户能够选择多个,我将每个添加到他们自己的单选按钮组中。
我遇到的问题是,当我在组中单独选择一个单选按钮时,我无法取消选择它。
有人可以告知为什么会发生这种情况并建议一种不同的方法吗?
【问题讨论】:
标签: c# wpf radio-button
我有一组单选按钮。在某些情况下,我希望用户能够选择多个这些单选按钮。
我使用的逻辑是,如果我希望用户只选择一个单选按钮,我会将它们添加到同一个单选按钮组中。如果我希望用户能够选择多个,我将每个添加到他们自己的单选按钮组中。
我遇到的问题是,当我在组中单独选择一个单选按钮时,我无法取消选择它。
有人可以告知为什么会发生这种情况并建议一种不同的方法吗?
【问题讨论】:
标签: c# wpf radio-button
使用CheckBoxes。 RadioButtons 不是为此而设计的。
【讨论】:
单选按钮不能取消选中。在这种情况下,您必须使用普通复选框。例如,在复选框的选中事件中,您可以取消选中另一个复选框。这不是一个好方法,但它确实有效。
【讨论】:
WFP 中的 RadioButton 有一个布尔属性IsChecked,可以设置为false。要重置组中的单选按钮,您应该将所有IsChecked 设置为 false(或仅设置IsChecked 为 true 的单选按钮)。
【讨论】:
如果您选择选中的单选按钮,则绑定将值设置为 true。如果当前值和建议值为真,则将其设置为假。嘿,它对我有用。
public bool chcked
{
get { return c; }
set
{
if (c && value)
{
c = false;
return;
}
c = value;
}
}
【讨论】:
我记得我能够在一个旧的 XAML/WPF 项目上做到这一点。今天我正在寻找它在 XAML/Windows Phone 8 上实现这一点,这似乎很难做到。
基本上,对于同一组中的所有按钮,您必须将 IsChecked 设置为 False。 (顺便说一句,我已将 IsThreeState 设置为默认值)。
我希望这会有所帮助。
干杯, 赫伯
【讨论】: