我想显示复选框已加载不确定状态而不是已选中/未选中状态。
代码段,
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方法帮助绑定代码中的复选框的空值?
答案 0 :(得分:1)
WinRT / UWP中不支持绑定空值。被控制忽略了。
对于变通方法,您可以继承CheckBox并添加依赖属性以支持可空绑定。
Jerrynixon对这个问题和解决方案有充分的解释bind to a nullable type文章。