Grh*_*rhm 4 wpf checkbox binding
我有一个复选框,其IsChecked属性绑定到可以为空的bool.当我的控件首次加载时,该值为null,复选框显示为灰色.这就是我要的.
当用户单击该复选框时,它将移至false/Unchecked状态.
但是,99%的用户想要勾选复选框 - 这当前意味着双击复选框.
当用户第一次单击复选框时,如何使值从null移动到true?
您可以只修改bound属性的setter来检查前一个值是否为null,如果是,则将值设置为true.像这样的东西:
public bool? MyBoolProperty
{
get { return _myBoolProperty; }
set
{
_myBoolProperty = (_myBoolProperty != null || value == null) ? value : true;
RaisePropertyChanged("MyBoolProperty");
}
}
Run Code Online (Sandbox Code Playgroud)
绑定系统将在设置后重新读取属性,因此新值将反映出来CheckBox.
我有同样的问题并遇到了这个问题.这是一个迟到的回应,但我认为这是最好的解决方案:)
在你的帮助下IsThreeState,TargetNullValue你可以做到这一点
<CheckBox IsThreeState="False" IsChecked="{Binding YOUR_NULLABLE_PROPERTY, TargetNullValue=false}" />
Run Code Online (Sandbox Code Playgroud)
唯一需要注意的是,它将在null和true之间切换.永远不会有错误的价值.
| 归档时间: |
|
| 查看次数: |
4728 次 |
| 最近记录: |