如何在WPF中一次只选择一个复选框

本文关键字:选择 复选框 一个 一次 WPF | 更新日期: 2023-09-27 18:15:46

我必须保留2个复选框,一次只能选中一个。但在我下面的代码都被选中。我应该如何在WPF中实现我的功能?

<StackPanel Orientation="Vertical" Name="spRoles">
<CheckBox Name="chkMale" Content="Male" />
<CheckBox Name="chkFemale" Content="Female" />
</StackPanel>

我只能使用复选框而不能使用单选按钮

如何在WPF中一次只选择一个复选框

监听select事件或类似事件,并勾选其他复选框

public void MaleOnSelection(object sender, EventArgs e)
{
    if(chkFemale.Selected)
        chkFemale.Selected=false;
}

显然,对于女性复选框

也要做同样的处理

无论如何,正如其他人所说,单选按钮会更好,你可以把它设计成一个复选框,如果你需要的话

在这种情况下,您应该使用单选按钮。

允许复选框只选择一个,这是没有意义的。

如果你仍然使用复选框,那么整个复选框的概念就会消失。

在这种情况下,只需使用单选按钮而不是复选框。复选框主要用于选择多个项目。

对于那些有目的性并且不同意允许复选框只选择一个的人来说是没有意义的。您可以为组中的每个复选框调用该方法。

    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);
    }