C# 迭代wpf控件
我对C#很陌生,我又迷路了。我不想问这个问题,但我无法理解这是怎么回事。我试图在WPF表单上遍历我的文本框以清除数据C# 迭代wpf控件,c#,wpf,controls,loops,visualtreehelper,C#,Wpf,Controls,Loops,Visualtreehelper,我对C#很陌生,我又迷路了。我不想问这个问题,但我无法理解这是怎么回事。我试图在WPF表单上遍历我的文本框以清除数据 我所有的文本框都有前缀“TextBox”,它位于一个6个字符长的字符串之前,即(TextBox3N1W09,TextBox3N1W10…)。我想我想使用VisualTreeHelper,但我不够聪明: #1) 传入一个变量。我想我了解家长 XAML 在我的例子中,我将网格命名为:“ThisGrid”,但我不知道如何传入文本框,我不知道是否需要对文本框的名称进行迭代并将其作为字符串
我所有的文本框都有前缀“TextBox”,它位于一个6个字符长的字符串之前,即(TextBox3N1W09,TextBox3N1W10…)。我想我想使用VisualTreeHelper,但我不够聪明:
#1) 传入一个变量。我想我了解家长 XAML
#2) 传入这些textbox名称或textbox对象后,我不确定如何处理结果: {
将子项返回为T;
} 我完全不知道“T”是什么,我该怎么处理“T”?我是否需要在方法中执行某些操作,或者在调用方法的地方执行某些操作。正如我在开始时所说,我只想清除文本框,这似乎没有那么困难,但我有一个很好的时间与它
public static T FindVisualChildByName<T>(DependencyObject parent, string name) where T : DependencyObject
{
for (int i = 0; i < VisualTreeHelper.GetChildrenCount(parent); i++)
{
var child = VisualTreeHelper.GetChild(parent, i);
string controlName = child.GetValue(Control.NameProperty) as string;
if (controlName == name)
{
return child as T;
}
else
{
T result = FindVisualChildByName<T>(child, name);
if (result != null)
return result;
}
}
return null;
}
public static T FindVisualChildByName(DependencyObject父对象,字符串名称),其中T:DependencyObject
{
for(int i=0;i
我试图在WPF表单上遍历我的文本框以清除
资料
这是一个错误的开始。在WPF中,可视化树是一件复杂的事情,在其中导航也可能很复杂。相反,你应该改变你的心态:
- WPF最适合使用MVVM模式,它鼓励将应用程序逻辑和数据与表示层分离。我建议你研究一下这个模式,否则你会发现自己在WPF中做“看似简单”的事情(比如清除文本框)时会一次又一次地碰壁
- 您必须学会将UI视为显示数据的方式,而不是存储数据的地方。因此,实际上要清除的字符串不是任何UI元素的属性,而是模型或视图模型的一部分。我建议您阅读有关MVVM和WPF中的数据绑定的内容
- 此外,您将文本框命名为TextBox3N1W09、TextBox3N1W10等,这让我觉得您必须显示数据项的集合(这是MVVM的思维方式),因此您最好使用
项控件或其派生工具来实现这一点,以及适当的
。我建议你也仔细阅读一下这个概念数据模板
- WPF最适合使用MVVM模式,它鼓励将应用程序逻辑和数据与表示层分离。我建议你研究一下这个模式,否则你会发现自己在WPF中做“看似简单”的事情(比如清除文本框)时会一次又一次地碰壁
- 您必须学会将UI视为显示数据的方式,而不是存储数据的地方。因此,实际上要清除的字符串不是任何UI元素的属性,而是模型或视图模型的一部分。我建议您阅读有关MVVM和WPF中的数据绑定的内容
- 此外,您将文本框命名为TextBox3N1W09、TextBox3N1W10等,这让我觉得您必须显示数据项的集合(这是MVVM的思维方式),因此您最好使用
项控件或其派生工具来实现这一点,以及适当的
。我建议你也仔细阅读一下这个概念数据模板
这可能会有帮助
T
是一种通用类型,允许您执行List
和List
等操作<代码>列表能够处理您发送的任何有效类型。C.Lang-感谢您提供有关“T”类型的信息,这确实有意义,而且肯定会有帮助。这可能会有帮助T
是一种通用类型,允许您执行List
和List
等操作<代码>列表能够处理您选择的任何有效类型