WPF项目中CheckBox.Checked判断逻辑无效问题求助
嘿,这问题我熟!你这代码没生效的原因很明确——用错属性啦!
核心问题
你写的BoxCheck.Checked是WPF CheckBox的事件(用来监听勾选状态变化的),而不是用来判断当前是否勾选的属性!真正表示勾选状态的是IsChecked属性,而且它是bool?(可空布尔类型),因为CheckBox支持三种状态(勾选、未勾选、不确定,当IsThreeState="True"时开启)。
修正后的C#代码
你只需要把判断条件换成IsChecked,同时处理它的可空特性就行,两种常用写法:
// 写法1:直接判断是否严格等于true(自动忽略null的情况) if (BoxCheck.IsChecked == true) { Textbox.Text += " Work?"; } // 写法2:用GetValueOrDefault(),将null视为false if (BoxCheck.IsChecked.GetValueOrDefault()) { Textbox.Text += " Work?"; }
额外优化建议
如果你的CheckBox不需要三种状态,可以在XAML里显式设置IsThreeState="False"(默认就是这个值,写出来更清晰),这样IsChecked只会返回true或false,不会出现null:
<CheckBox Content="CheckBox" HorizontalAlignment="Left" Margin="287,83,0,0" VerticalAlignment="Top" Name="BoxCheck" IsThreeState="False"/>
内容的提问来源于stack exchange,提问作者Pete Zíťák
相关产品推荐
相关产品推荐

