我必须保留2个复选框,一次只能选择一个。但在我的下面的代码中,两者都被选中。我应该如何在WPF中实现我的功能?
<StackPanel Orientation="Vertical" Name="spRoles">
<CheckBox Name="chkMale" Content="Male" />
<CheckBox Name="chkFemale" Content="Female" />
</StackPanel>
我必须使用复选框而不是单选按钮。
答案 0 :(得分:5)
听取选择事件或类似事件并检查其他复选框
public void MaleOnSelection(object sender, EventArgs e)
{
if(chkFemale.Selected)
chkFemale.Selected=false;
}
显然你必须为女性复选框做同样的事情
无论如何,如其他单位所述的单选按钮会更好,你可以将它设置为复选框,如果这是你需要的那样
答案 1 :(得分:3)
在您的情况下,您应该使用单选按钮。
允许复选框只选择一个,这没有意义。
如果您仍然使用复选框,则复选框的整个概念将会消失。
答案 2 :(得分:1)
在这种情况下,只需使用单选按钮而不是复选框。复选框主要用于多项选择。
答案 3 :(得分:0)
对于那些有目的和不同意的人来说,允许复选框只选择一个没有意义。您可以为组中的每个复选框调用该方法。
private void uncheckCheckBoxes(object sender)
{
if (radioButtonEdit.IsChecked == true)
{
CheckBox currentcheckbox = (CheckBox)sender;
foreach (var checkBox in ManyCheckBoxes.Children.OfType<CheckBox>().Where(cb => (bool)cb.IsChecked))
{
if (!currentcheckbox.Name.Equals(checkBox.Name))
{
checkBox.IsChecked = false;
}
}
}
}
private void checkbox1_Checked(object sender, RoutedEventArgs e)
{
uncheckCheckBoxes(sender);
}