使用C#与Wpf Tabitem控件循环?

帕拉维

嗨,我熟悉Windows窗体,现在我要启动WPF,在Windows中,我使用以下递归方法重置控件

 internal  void clrCntrls(Control cntrl)
    {
        if (cntrl.GetType() == typeof(TextBox))
        {
            TextBox cntrl = (TextBox)cntrl;
            cntrl.Text = "";               
        }            
         else if (cntrl.GetType() == typeof(ComboBox))
        {
            ComboBox cntrl = (ComboBox)cntrl;
            cntrl.SelectedIndex = -1;
        }
        else
        {
            foreach (Control subCntrl in _cntrl.Controls)
            {
                clrCntrls(subCntrl);
            }
        }

在Windows中对我来说效果很好,但是在WPF中我该如何做。我对此有些困惑。请帮忙。

达米尔·阿尔(Damir Arh)

您可以尝试使用VisualTreeHelper,但它仅适用于可视树中当前存在的控件(即渲染的控件)。如果您有一个TabControl,则将无法访问TabItem当前未选择的上的控件

这是一个快速尝试:

private void ClearControls(DependencyObject root)
{
    for (int i = 0; i < VisualTreeHelper.GetChildrenCount(root); i++)
    {
        var control = VisualTreeHelper.GetChild(root, i);

        if (control is TextBox)
        {
            (control as TextBox).Text = String.Empty;
        }
        else if (control is ComboBox)
        {
            (control as ComboBox).Text = String.Empty;
        }
        else if (VisualTreeHelper.GetChildrenCount(control) > 0)
        {
            ClearControls(control);
        }
    }
}

我的建议是改为利用MVVM模式在这种情况下,您将控件内容绑定到视图模型类中的属性。在这种情况下,要清除所有控件,只需替换DataContext为视图模型类的新实例即可。有关详细信息,请查看HighCore的答案。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

循环使用C#(Store App)中的多个控件/元素

来自分类Dev

C#在for循环中更改控件的名称

来自分类Dev

WPF TabControl,使用C#代码更改TabItem的背景色

来自分类Dev

循环使用禁用控件的表单

来自分类Dev

使用WPF C#中的多个控件的组合创建一个自定义控件

来自分类Dev

防止用户控件关闭WPF C#

来自分类Dev

C#/WPF - IntegerUpDown 控件 PropertyChanged

来自分类Dev

WPF - 可以循环遍历用户控件吗?

来自分类常见问题

使用WPF / C#嵌入Chromium而不是IE WebBrowser控件的选项

来自分类Dev

在C#/ WPF应用中使用ActiveX控件(无关联的UI)

来自分类Dev

如何从WPF控件继承并在C#中同时使用泛型类?

来自分类Dev

如何使用 Partial 类 WPF C# 中的控件初始化字符串变量?

来自分类Dev

标签控件未显示在for循环C#中

来自分类Dev

TableLayoutPanel 中的 Foreach 控件循环 (C# WinForms)

来自分类Dev

C#:WinForms / WPF渲染循环

来自分类Dev

(C#)使用for循环创建用户控件组件,并将这些组件放入列表中

来自分类Dev

如何在C#中使用循环迭代所有ComboBoxes控件?

来自分类Dev

在C#中的其他控件用户中循环浏览控件

来自分类Dev

获取父用户控件WPF C#的名称

来自分类Dev

WPF C#控件未在“框”内呈现

来自分类Dev

更改用户控件嵌套元素的属性:WPF/C#

来自分类Dev

多个控件上的 C# WPF DragDrop 事件

来自分类Dev

如何使用WPF用户控件文本框中设置的参数调用C#类中的方法

来自分类Dev

通过WPF窗口上的图像控件进行Foreach循环

来自分类Dev

使用C#打印控件的整个区域

来自分类Dev

使用C#打印控件的整个区域

来自分类Dev

使用其他形式的C#控件

来自分类Dev

在 C# 中使用 MetroFramework 控件项

来自分类Dev

从WPF C#中的For循环调用用户定义的函数

Related 相关文章

  1. 1

    循环使用C#(Store App)中的多个控件/元素

  2. 2

    C#在for循环中更改控件的名称

  3. 3

    WPF TabControl,使用C#代码更改TabItem的背景色

  4. 4

    循环使用禁用控件的表单

  5. 5

    使用WPF C#中的多个控件的组合创建一个自定义控件

  6. 6

    防止用户控件关闭WPF C#

  7. 7

    C#/WPF - IntegerUpDown 控件 PropertyChanged

  8. 8

    WPF - 可以循环遍历用户控件吗?

  9. 9

    使用WPF / C#嵌入Chromium而不是IE WebBrowser控件的选项

  10. 10

    在C#/ WPF应用中使用ActiveX控件(无关联的UI)

  11. 11

    如何从WPF控件继承并在C#中同时使用泛型类?

  12. 12

    如何使用 Partial 类 WPF C# 中的控件初始化字符串变量?

  13. 13

    标签控件未显示在for循环C#中

  14. 14

    TableLayoutPanel 中的 Foreach 控件循环 (C# WinForms)

  15. 15

    C#:WinForms / WPF渲染循环

  16. 16

    (C#)使用for循环创建用户控件组件,并将这些组件放入列表中

  17. 17

    如何在C#中使用循环迭代所有ComboBoxes控件?

  18. 18

    在C#中的其他控件用户中循环浏览控件

  19. 19

    获取父用户控件WPF C#的名称

  20. 20

    WPF C#控件未在“框”内呈现

  21. 21

    更改用户控件嵌套元素的属性:WPF/C#

  22. 22

    多个控件上的 C# WPF DragDrop 事件

  23. 23

    如何使用WPF用户控件文本框中设置的参数调用C#类中的方法

  24. 24

    通过WPF窗口上的图像控件进行Foreach循环

  25. 25

    使用C#打印控件的整个区域

  26. 26

    使用C#打印控件的整个区域

  27. 27

    使用其他形式的C#控件

  28. 28

    在 C# 中使用 MetroFramework 控件项

  29. 29

    从WPF C#中的For循环调用用户定义的函数

热门标签

归档