C# 清除所有文本框并取消选中 WPF 中的所有复选框

Pro*_*er7 3 c# wpf checkbox

我想弄清楚如何清除所有文本框并取消选中 C# WPF 中的所有复选框。表单有很多文本框,为每个文本框执行 .Clear() 或 = "" 会变得乏味。复选框也是一样。

我听说在 Windows 窗体中使用 foreach 循环执行类似下面的操作很容易,但是我在 WPF 上执行此操作,因此无法使其正常工作。

foreach (Control c in Controls)
{
  if (c is CheckBox)
  {
     ((CheckBox) c).Checked = false;
  }
  else if (c is TextBox)
  {
    ((TextBox) c).Text = "";
  }
}
Run Code Online (Sandbox Code Playgroud)

有人有什么建议吗?谢谢

suj*_*lil 5

让整个控件都在一个容器内(让它成为一个堆栈面板),如下所示:

<StackPanel Name="containerCanvas" Margin="0,0,0,191">
    <CheckBox Name="chk1" >chk1</CheckBox>
    <CheckBox Name="chk2" >chk2</CheckBox>
    <CheckBox Name="chk3" >chk3</CheckBox>
    <TextBox Name="txt1" Text="xxxxxxxx"></TextBox>
    <TextBox Name="txt2" Text="xxxxxxxxx"></TextBox>
    <TextBox Name="txt3" Text="xxxxxxxxxx"></TextBox>
</StackPanel>
Run Code Online (Sandbox Code Playgroud)

然后清除按钮的 Click 事件将如下所示:

private void btnClear_Click(object sender, RoutedEventArgs e)
{
    foreach (Control  ctl  in containerCanvas.Children)
    {
        if (ctl.GetType() == typeof(CheckBox))
            ((CheckBox)ctl).IsChecked = false;
          if (ctl.GetType() == typeof(TextBox))
            ((TextBox)ctl).Text = String.Empty;
    }
}
Run Code Online (Sandbox Code Playgroud)