在具有Nullable bool属性的CheckBox中无法获得不确定状态

时间:2016-04-21 10:16:41

标签: c# xaml win-universal-app

我想显示复选框已加载不确定状态而不是已选中/未选中状态。

代码段,

private bool? nullCheck = null;

    public bool? NullCheck
    {
        get { return nullCheck; }
        set { nullCheck = value;  }
    }



 <CheckBox  IsChecked="{x:Bind Path=NullCheck}" IsThreeState="True"/>

然后CheckBox加载了不确定状态。

当我在下面的代码中设置绑定时,

<CheckBox  Loaded="CheckBox_Loaded" IsThreeState="True"/>
 private void CheckBox_Loaded(object sender, RoutedEventArgs e)
    {
        var uiElement = sender as CheckBox;
        var binding = new Binding();
        binding.Path = new PropertyPath("NullCheck");
        uiElement.SetBinding(ToggleButton.IsCheckedProperty, binding);
    }

此处复选框IsChecked属性返回false而不是null值。我不明白为什么。任何人都可以通过使用SetBinding方法帮助绑定代码中的复选框的空值?

1 个答案:

答案 0 :(得分:1)

WinRT / UWP中不支持绑定空值。被控制忽略了。

对于变通方法,您可以继承CheckBox并添加依赖属性以支持可空绑定。

Jerrynixon对这个问题和解决方案有充分的解释bind to a nullable type文章。