我有一系列标签,其中包含文本框。某些选项卡还有一个控件,其中包含Scrollview内的文本框。我试图遍历选项卡并清除文本框的内容。
我打算用这个:
foreach(TabItem item in Tabs.Items)
{
ClearTextBoxes(this);
}
然后我用它来清除文本框:
TextBox tb = obj as TextBox;
if (tb != null)
tb.Text = "";
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(obj); i++)
{
ClearTextBoxes(VisualTreeHelper.GetChild(obj, i));
}
目前只清除第一个标签,其余都没有。
有什么想法吗?
答案 0 :(得分:1)
使用LogicalTreeHelper。只有当前活动选项卡的项目包含在可视化树中,因此可视树帮助程序不是您任务的最佳选择。
迭代选项卡项是IMO没有必要,只有当你有许多其他控件没有驻留在tab-items中,因此想要节省cpu功率。正如Bela R已经提到的,在调用ClearTextBoxes()时出错。
答案 1 :(得分:0)
我认为它应该是ClearTextBoxes(item)
而不是ClearTextBoxes(this)
foreach(TabItem item in Tabs.Items)
{
ClearTextBoxes(item);
}