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合并运算符.如果左侧操作数为空,则此运算符返回右侧操作数.因此,false当CheckBox处于不确定状态时(当IsCheckedproperty 的值设置为null时),您可以返回:
if (chkRevLoop.IsChecked ?? false)
{
}
Run Code Online (Sandbox Code Playgroud)
你必须从这一转换bool?到bool,使其工作:
if((bool)(chkRevLoop.IsChecked)){}
Run Code Online (Sandbox Code Playgroud)
因为它已经是一个bool条件你不需要把它变为真假,因为如果它是真的那么只有它会进入这个条件,否则不会.所以,甚至不需要放在chkRevLoop.IsChecked == true这里,你默认是==true通过puttin 询问IsChecked
已经有多个答案,但这是另一种选择
if (chkRevLoop.IsChecked.GetValueOrDefault()) {}
Run Code Online (Sandbox Code Playgroud)
从MSDN
| 归档时间: |
|
| 查看次数: |
36076 次 |
| 最近记录: |