如何检查是否已在 tabcontrol 的另一个选项卡中选中复选框

How do I check if a checkbox has been checked in another tab in tabcontrol

所以我对 TabControl 还很陌生,我查看了一些教程,阅读了一些帖子,但我找不到任何关于如何检查一个选项卡中的复选框是否被选中以及文本框是否包含内容的信息它,在另一个选项卡中,我认为它称为检查属性,但我不完全确定。

想象一下,您拥有一个带有 tabControl 的 WPF,其中包含两个选项卡和 tabControl 外部的 1 个按钮。 第一个选项卡包含 1 个复选框,第二个选项卡包含一个文本框

现在我如何检查复选框是否被选中以及 textbox.text != ""

--更新-- 正如我刚刚发现的那样,复选框是全局的,只要它们在同一个 window 中,我问狐狸如果文本框在另一个 window 中如何做到这一点。

您可以将 CheckBox 的 Name 属性 设置为独特的东西,然后在后面的代码中检查它时使用它来获得正确的 CheckBox。

在您的 XAML 中设置名称如下所示:

<CheckBox Name="myCheckBox" />

之后您可以在后面的代码中使用这样的代码来查看您的 CheckBox 是否已被选中:

if (myCheckBox.IsChecked) {
    Console.WriteLine("my checkbox is checked.");
}

要检查另一个 Window 或 UserControl 中的 CheckBox 是否被选中,您可以将 属性 添加到 Window 中,其中包含您在选中 CheckBox 时更新的相关 CheckBox状态变化。

public bool MyTextBoxIsChecked {get; set;}

正如 FlyingFox 的回答,我假设复选框是全局的。

<Checkbox Name="myCheckBox" />

private void myCheckBox_CheckedChanged(object sender, EventArgs e)
{
    if (myCheckBox.Checked)
    {
        Console.WriteLine("my checkbox is checked.");
    }
    else if (!myCheckBox.Checked)
    {
        Console.WriteLine("my checkbox is not checked."); 
    }
}

Checking if textbox has Text or not:

if (textbox1.Text.Length > 0)
{
  Console.WriteLine("Textbox has text"); 
}