WPF复选框检查IsChecked

her*_*iam 24 c# wpf if-statement

我不是在讨论这个事件处理程序,而是简单地If Statement检查是否CheckBox已经检查过.到目前为止,我有:

if (chkRevLoop.IsChecked == true){}
Run Code Online (Sandbox Code Playgroud)

但这引发了错误:

无法隐式转换类型'bool?' 'bool'.存在显式转换(您是否错过了演员?)

有没有办法做到这一点,我错过了?

Sal*_*ari 33

您可以使用null合并运算符.如果左侧操作数为空,则此运算符返回右侧操作数.因此,falseCheckBox处于不确定状态时(当IsCheckedproperty 的值设置为null时),您可以返回:

if (chkRevLoop.IsChecked ?? false)
{

}
Run Code Online (Sandbox Code Playgroud)


Des*_*ngh 8

你必须从这一转换bool?bool,使其工作:

if((bool)(chkRevLoop.IsChecked)){}
Run Code Online (Sandbox Code Playgroud)

因为它已经是一个bool条件你不需要把它变为真假,因为如果它是真的那么只有它会进入这个条件,否则不会.所以,甚至不需要放在chkRevLoop.IsChecked == true这里,你默认是==true通过puttin 询问IsChecked


tie*_*er1 5

已经有多个答案,但这是另一种选择

if (chkRevLoop.IsChecked.GetValueOrDefault()) {}
Run Code Online (Sandbox Code Playgroud)

MSDN