【问题标题】:How to get all the textBoxes in the UserControl added into GridView如何将 UserControl 中的所有文本框添加到 GridView
【发布时间】:2014-12-12 07:42:47
【问题描述】:

在页面上,我将 UserControl 动态添加到 GridView 中。因此,每个 UserControl 都可以包含不同类型的控件(TextBox、CheckBox、Radio Button)

比如说,UserControl的名字是:UserForm。

问题: 如何使用 VisualTreeHelper 获取控件集合并检查 textBox 是否为空。

我找到了一个与这个问题类似的代码并修改了它但不起作用。

我不知道这是什么意思,是否需要这样做?

list.AddRange(AllTextBoxes(child))

我应该使用 MyList.Select() 还是 MyList.Where() ?

无效的 FindTextBoxes() { 列表 MyList = AllTextBoxes(UserForm); var count = MyList.Where(x= > if(string.IsEmptyOrNull(x.Text)); } 列出 AllTextBoxes(DependencyObject parent) { var list = new List (); for (int i = 0; i

【问题讨论】:

  • 为什么不在你的用户控件中实现验证?

标签: winrt-xaml


【解决方案1】:

这是我使用的。

void MainPage_Loaded(object sender, RoutedEventArgs e)
{
    var textBoxes = AllChildren(MyGridView).Where(x => x is TextBox);
}

public IEnumerable<Control> AllChildren(DependencyObject parent)
{
    for (int index = 0; index < VisualTreeHelper.GetChildrenCount(parent); index++)
    {
        var child = VisualTreeHelper.GetChild(parent, index);
        if (child is Control)
            yield return child as Control;
        foreach (var item in AllChildren(child))
            yield return item;
    }
}

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-09-17
    • 2012-07-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-05
    • 2017-09-22
    相关资源
    最近更新 更多