为啥 CheckBox.IsChecked 属性为 Nullable<bool>?
Posted
技术标签:
【中文标题】为啥 CheckBox.IsChecked 属性为 Nullable<bool>?【英文标题】:Why is CheckBox.IsChecked property Nullable<bool>?为什么 CheckBox.IsChecked 属性为 Nullable<bool>? 【发布时间】:2011-05-30 15:02:19 【问题描述】:为什么 WPF 中 bool?
(或 Nullable<bool>
)类型的复选框控件的 IsChecked
属性。我的意思是一个复选框控件怎么会有null
的值?
【问题讨论】:
Why is IsChecked property nullable boolean in WPF CheckBox?的可能重复 【参考方案1】:是的,空值存在并显示为填充框。表示对系统“不适用”。
【讨论】:
【参考方案2】:根据documentation,IsChecked
属性具有三种不同的可能状态:
因此,当IsChecked
设置为null
时,复选框将显示“不确定”状态。这通常表示为带阴影或灰显的控件。
【讨论】:
【参考方案3】:复选框可以有第三种、灰色、不确定的状态。
【讨论】:
【参考方案4】:不要忘记将复选框的属性 IsThreeState 设置为 true 以启用此功能。
【讨论】:
【参考方案5】:因为 WPF 支持绑定。如果我们将一个 DB 布尔列值绑定到一个复选框。该列可能具有 True/False/Null 值。这意味着它具有三个布尔字段值。所以 WPF UI 也应该处理这三种状态。
【讨论】:
以上是关于为啥 CheckBox.IsChecked 属性为 Nullable<bool>?的主要内容,如果未能解决你的问题,请参考以下文章
如何在不引发事件的情况下设置 checkbox.isChecked