【问题标题】:C# CheckBox Method logic wont manipulateC# CheckBox 方法逻辑不会操作
【发布时间】:2021-09-16 00:05:20
【问题描述】:

如果用户单击复选框,我正在编写 C# 并尝试操作某些方面。每次我尝试构建这个简单的方法时都没有错误,但逻辑不起作用。如何有效且正确地使用 IsChecked?

 public void Function1() 
        {
            if (expBox.IsChecked == true)
            {
                TEST.Visibility = Visibility.Visible;
            }
            else if(noobBox.IsChecked == true)
            {
                noobBlock.Visibility = Visibility.Collapsed;
            }
            else if(expertBox.IsChecked == true)
            {
                expertBlock.Visibility = Visibility.Collapsed;
            }
        }

【问题讨论】:

  • 什么不起作用?你检查过 expBox 吗?如果是这样,它将永远不会达到任何其他 ifs。尝试将 else if 更改为他们自己的 if 语句,看看您是否获得了预期的行为。
  • 点击后不允许我做任何事情。我试图让它显示文本,使文本消失等。让它们全部 ifs 仍然没有做任何事情,没有错误但不会输出我想要的。
  • 你能详细说说你在哪里调用Function1方法吗?
  • 在我的公共 MainPage() 中

标签: c# visual-studio checkbox uwp logic


【解决方案1】:

我在这里猜测,但您似乎没有将 Function1 绑定到更改事件。

Xaml 中的更改:

<CheckBox x:Name="expBox" Content="Expert CheckBox"
      Checked="Function1" Unchecked="Function1" />

CodeBehind 的变化:

 public void Function1(object sender, RoutedEventArgs e) 
    {
 
        if (expBox.IsChecked == true)
        {
            TEST.Visibility = Visibility.Visible;
        }
        else if(noobBox.IsChecked == true)
        {
            noobBlock.Visibility = Visibility.Collapsed;
        }
        else if(expertBox.IsChecked == true)
        {
            expertBlock.Visibility = Visibility.Collapsed;
        }
    }

这样,每次更改“expBox”检查状态时都会调用您的 function1。此外,我建议检查如何在 Xaml 中完成所有这些操作。

【讨论】:

  • 是的,这没有用,但破坏了一切。一堆错误 CS0123 'Function1' 没有重载匹配委托
  • 您是否在 xaml.cs 代码中设置 Function1 ?
  • 是的。没有错误就是不输出。
  • 你能更清楚地解释一下你想要实现什么效果
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-03
  • 1970-01-01
  • 1970-01-01
  • 2012-07-20
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多