【问题标题】:How to use Checked event properly?如何正确使用 Checked 事件?
【发布时间】:2017-07-17 19:43:34
【问题描述】:

我正在尝试制作应用程序,该应用程序将根据复选框为多个路径创建 excel 表。

现在我正在尝试创建一个方法,该方法将为选中的 CheckBoxes 创建文件。

private void createFilesButton_Click(object sender, RoutedEventArgs e)
        {
            for (int index = 0; index < projektCheckBoxes.Count; ++index)
            {
                if (projektCheckBoxes[index].Checked)
                {
                    vytvorSoubor(index);
                    }
            }

我的问题是我遇到了这个错误:

错误 CS0079 事件“ToggleButton.Checked”只能出现在 += 或 -= 的左侧

我在这个论坛上搜索所以我尝试了IsChecked 然后我得到了这个错误:

错误 CS0266 无法隐式转换类型“bool?” '布尔'。存在显式转换(您是否缺少演员表?)

所以我再次搜索,发现Checked 是一个事件的答案,我应该像这样使用IsChecked 属性...

  if (projektCheckBoxes[index].IsChecked ?"It's checked" : "Not checked")

但这对我也没有帮助。

您能否告诉我我做错了什么以及应该如何正确?

谢谢!

【问题讨论】:

  • 我不认为错误来自发布的代码。它可能在vytvorSoubor,所以粘贴该方法的代码
  • 改用if (projektCheckBoxes[index].IsChecked.Value)
  • 澄清一下,您使用的是CheckBox 还是ToggleButton
  • 是的,我正在使用checkbox。现在是我的函数vytvorSoubor 完全一团糟,但在我不明白我对checked' 有问题之前可能有什么问题

标签: c# visual-studio checkbox checked


【解决方案1】:
Cannot implicitly convert type 'bool?' to 'bool'

如何处理indeterminate state 的情况由您决定。如果您选择将其同化为false,例如

if (projektCheckBoxes[index].IsChecked??false)

【讨论】:

  • 这有帮助!谢了!
猜你喜欢
  • 2011-12-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多