wpf - 强制三态复选框不移动到不确定状态

标签 wpf checkbox

我在 WPF 工作,我有一个有趣的要求。
我需要我的复选框是 ThreeState,所以如果只选择了一些子元素,它会显示为不确定。但是当用户点击它时,我希望它选择真或假。

这是一个故事来代表我的要求:

item - indeterminate  
    subItem - checked  
    subItem - unchecked  
    subItem - checked  

当用户点击 item ,复选框应在选中和未选中之间交替。用户永远不能选择“不确定”作为状态。这可能吗?

最佳答案

XAML:

<CheckBox IsThreeState="True" IsChecked="{x:Null}" Click="CheckBox_Clicked" />

代码隐藏:
private void CheckBox_Clicked(object sender, RoutedEventArgs e)
  {
     var cb = e.Source as CheckBox;
     if (!cb.IsChecked.HasValue) 
        cb.IsChecked = false;
  }

如果您不喜欢代码隐藏解决方案,那么您可以像 this 的解决方案一样对您自己的控件进行子类化。问题。

关于wpf - 强制三态复选框不移动到不确定状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3920768/

相关文章:

c# - 创建带有文本框的消息框

html - 自定义复选框,在 :hover and :checked. 上更改不起作用

php - 检查具有多个输入的数据库表

wpf - 为什么 Visual Studio 不希望我向 WPF 项目添加新窗口?

Javascript - 如何获取复选框组的总和

jquery - 在 jquery 中检查至少一个复选框验证

vb6 - 如何将复选框转换为 boolean 值?

c# - 使用 ViewModel 中的多个变量绑定(bind) WPF 控制可见性

c# - WPF 绑定(bind)路径是否已在后台规范化?

wpf - LayoutTransform 自定义样式 wpf