C# 当某些条件不满足时,如何阻止要在已选中事件上签入的复选框?

C# 当某些条件不满足时,如何阻止要在已选中事件上签入的复选框?,c#,xaml,checkbox,C#,Xaml,Checkbox,我正在使用System.Windows.Controls.CheckBox。我正在实现OnChecked事件处理程序,我希望取消选中复选框如果处理程序运行后未满足某些条件,我应该如何实现该处理程序 xaml代码: <CheckBox Checked="OnChecked" >Checkbox text</CheckBox> 您可以尝试以下方法: private void OnChecked(object sender, RoutedEventArgs e) {

我正在使用
System.Windows.Controls.CheckBox
。我正在实现
OnChecked
事件处理程序,我希望取消选中复选框如果处理程序运行后未满足某些条件,我应该如何实现该处理程序

xaml代码:

<CheckBox  Checked="OnChecked" >Checkbox text</CheckBox>

您可以尝试以下方法:

private void OnChecked(object sender, RoutedEventArgs e)
{
     if(*your condition*)
     {
          (sender as System.Windows.Controls.CheckBox).IsChecked = false;
     }
}

在OnChecked事件处理程序中,您可以添加if块来检查您的条件是否满足。如果不满足条件,可以清除该属性

private void OnChecked(object sender, RoutedEventArgs e)
{
    if (true) // your condition
    {
        ((CheckBox) sender).IsChecked = false;
    }
}

为什么不以禁用状态运行复选框,并启用OnConditionMetEvent!这也给了用户一个视觉提示,他们不能检查它。真糟糕的用户体验。不要构建一个应用程序,让人们做事情,然后立即“纠正”他们的行为。虽然这可能回答了作者的问题,但它缺少一些解释性的词语和文档链接。如果没有一些短语,原始代码片段就没有多大帮助。你也会发现这很有帮助。请编辑您的答案。
private void OnChecked(object sender, RoutedEventArgs e)
{
    if (true) // your condition
    {
        ((CheckBox) sender).IsChecked = false;
    }
}