不确定状态不会在具有可为空的布尔属性的复选框中获取
本文关键字:布尔 属性 复选框 获取 状态 不确定 | 更新日期: 2024-10-25 21:47:33
我想显示复选框加载时具有不确定状态,而不是选中/未选中状态。
代码片段,
private bool? nullCheck = null;
public bool? NullCheck
{
get { return nullCheck; }
set { nullCheck = value; }
}
<CheckBox IsChecked="{x:Bind Path=NullCheck}" IsThreeState="True"/>
然后复选框以不确定状态加载。
当我在代码后面设置绑定时,如下所示,
<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 方法帮助绑定代码隐藏中的复选框的空值?
WinRT/UWP 不支持绑定空值。它被控制忽略了。
对于解决方法,您可以对复选框进行子类化,并添加依赖项属性以支持可为空的绑定。
这里很好地解释了绑定到Jerrynixon与此问题和解决方案相关的可空类型文章。