从复选框中提取值 - C#、WPF

问题描述 投票:0回答:1

我是 C# 和 Visual Studio 的新手,之前在 Visual Basic 中做过一些工作。非常感谢任何帮助。

我正在尝试获取一个表单来根据是否选中复选框来更改变量。 因此,用户单击按钮,变量就会有一个值,但如果选中该复选框,它就会有另一个值。

所以我正在努力

        if (Othersite.Checked)
            site = "Site B";
        else
            site = "Site A";

如果我这样写,底部的消息会显示“Togglebutton.checked 必须位于+=或-=”的左侧

但是,如果我放

if(其他站点。已检查 += true) 站点=“站点B”; 别的 站点=“站点A”;

错误是“CS0029无法将类型‘bool’隐式转换为‘System.Windows.RoulatedEventHandler’”

我哪里出错了?

我试着在这里环顾四周,但没有看到任何太相似的东西。或者结果在视觉工作室中不起作用。

c# checkbox
1个回答
0
投票

从注释转移,在 WPF 应用程序中要获取

CheckBox
状态,您应该使用
IsChecked
属性:

private void SomeMethod()
{
    if (Othersite.IsChecked)
        site = "Site B";
    else
        site = "Site A";

    // or use ternary assignment:
    // site = $"Site {(Othersite.IsChecked ? "B" : "A")}";
}

我认为这种误解的罪魁祸首是 Windows 窗体,其中

CheckBox
状态存储在
Checked
属性中(没有“Is”前缀)。如果您从 Windows 窗体迁移到 WPF,这可能会令人困惑。

WPF CheckBox 中的

Checked
变成了
event
,当您检查 CheckBox 时会触发。

您可以在 Visual Studio 中输入点“.”时看到它。在您的复选框名称之后:

在 Windows 窗体中,它看起来:

© www.soinside.com 2019 - 2024. All rights reserved.