如何在if语句中检查双复选框?C#,WPF
如何在WPF C#中的单个if语句中检查2个或更多复选框IsChecked值?我正试图这样做,但它不起作用如何在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 ((
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.");
}
}