如何将可空的bool绑定到复选框?

JYe*_*ton 5 .net nullable winforms

我将信息显示为ThreeState启用的复选框,并希望以最简单的方式使用可空的布尔值.

目前我正在使用嵌套的三元表达式; 但有更明确的方式吗?

bool? foo = null;
checkBox1.CheckState = foo.HasValue ?
    (foo == true ? CheckState.Checked : CheckState.Unchecked) :
    CheckState.Indeterminate;
Run Code Online (Sandbox Code Playgroud)

*请注意,复选框和表单是只读的.

Nat*_*oop 6

这就是我要做的。

我会添加一个扩展方法来清理它。

    public static CheckState ToCheckboxState(this bool booleanValue)
    {
        return booleanValue.ToCheckboxState();
    }

    public static CheckState ToCheckboxState(this bool? booleanValue)
    {
        return booleanValue.HasValue ?
               (booleanValue == true ? CheckState.Checked : CheckState.Unchecked) :
               CheckState.Indeterminate;
    }
Run Code Online (Sandbox Code Playgroud)