我在 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/