Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在if语句中检查双复选框?C#,WPF_C#_Wpf_If Statement_Checkbox - Fatal编程技术网

如何在if语句中检查双复选框?C#,WPF

如何在if语句中检查双复选框?C#,WPF,c#,wpf,if-statement,checkbox,C#,Wpf,If Statement,Checkbox,如何在WPF C#中的单个if语句中检查2个或更多复选框IsChecked值?我正试图这样做,但它不起作用 if ((symbols_cb.IsChecked ?? true) && (digits_cb.IsChecked ?? true)) { MessageBox.Show("Check - Yes it is selected."); } 这里的符号\u cb和数字\u cb是复选框,我希望在选中这两个复选框时显示一条消息。检查此答案: if ((

如何在WPF C#中的单个if语句中检查2个或更多复选框IsChecked值?我正试图这样做,但它不起作用

 if ((symbols_cb.IsChecked ?? true) && (digits_cb.IsChecked ?? true))
 {
        MessageBox.Show("Check - Yes it is selected.");
 }
这里的符号\u cb数字\u cb是复选框,我希望在选中这两个复选框时显示一条消息。

检查此答案:

if ((symbols_cb.IsChecked ?? false) && (digits_cb.IsChecked ?? false))
{
    MessageBox.Show("Check - Yes it is selected.");
}

运算符
没有按您所希望的方式工作,此运算符检查左值是否为null,是否为null返回右值。 您需要这样做:

if (symbols_cb.IsChecked && digits_cb.IsChecked)
{
    MessageBox.Show("Check - Yes it is selected.");
}
编辑:我不知道在WPF中有一个被选中的返回
bool?
。检查IsChecked是否有值后尝试检查值:

if (symbols_cb.IsChecked.HasValue ?? symbols_cb.IsChecked : false   &&
    digits_cb.IsChecked.HasValue ?? digits_cb.IsChecked : false )
{
    MessageBox.Show("Check - Yes it is selected.");
}
如果这是你的观点:

<StackPanel>
    <CheckBox Name="symbols_cb" Checked="checkBox_CheckedChanged" Unchecked="checkBox_CheckedChanged" />
    <CheckBox Name="digits_cb" Checked="checkBox_CheckedChanged" Unchecked="checkBox_CheckedChanged"/>
</StackPanel>

代码在哪里运行?它需要在复选框更改状态时触发的某些代码中运行。如果((符号\u cb.IsChecked)和&(数字\u cb.IsChecked))?什么是“它不工作”?请尝试
??false
以排除其未定义的state@MatthewWatson是的,我已经用&&Operator写了同样的东西,这是我已经建议的:-)消息框应该是“他们都被选中了”,而这可能更合适,如果OP想要排除未定义的状态,它不能解决问题:控件不在此循环内,而不是它跳过此代码并移动到其他条件“”它跳过此代码“=>如果WPF复选框中的属性是
bool?
,则不要将此代码放入
中。你的代码甚至没有编译。
IsChecked
bool?
不是
bool
:如果
condition@Giulio那么,如何编写语句来检查是否选中了2个复选框呢?如果两个都选中,则显示一些消息,否则显示其他消息?@Giulio:当然,如果使用
=
运算符,这与
如果((符号\u cb.IsChecked??false)&(数字\u cb.IsChecked??false))…
    private void checkBox_CheckedChanged(object sender, RoutedEventArgs e)
    {
        if ((symbols_cb.IsChecked == true) && (digits_cb.IsChecked == true))
        {
            MessageBox.Show("Check - Yes it is selected.");
        }
    }