C# 清除多个文本框中的文本';马上
我有一个WPF应用程序,它有一个C# 清除多个文本框中的文本';马上,c#,wpf,C#,Wpf,我有一个WPF应用程序,它有一个网格,其中有多个文本框s。如何使每个TextBox.Text=null点击一个按钮?尝试一下: private void button1_Click(object sender, RoutedEventArgs e) { foreach (UIElement control in myGrid.Children) { if (control.GetType() == typeof(TextBox
网格
,其中有多个文本框
s。如何使每个TextBox.Text=null代码>点击一个按钮?尝试一下:
private void button1_Click(object sender, RoutedEventArgs e)
{
foreach (UIElement control in myGrid.Children)
{
if (control.GetType() == typeof(TextBox))
{
TextBox txtBox = (TextBox)control;
txtBox.Text = null;
}
}
}
类似这样的方法会奏效:
private void Button_Click(object sender, RoutedEventArgs e) {
foreach (UIElement element in this.grid.Children) {
TextBox textBox = element as TextBox;
if (textBox == null)
continue;
textBox.Text = null;
}
}
Tom和code裸体提供的代码将满足您的要求,但我通常建议您不要使用这种逻辑
网格用于帮助您直观地组织控件,它是一个布局容器。决不能在幕后用它来逻辑地组织控件
不过,正如我所说,这是一个相当普遍的建议。您的程序可能会从其他方法中受益。有多种方法可以解决此问题
第一种是一种混合方法,通过绑定和单击按钮删除数据,让数据向下流到文本框
首先,您需要确保数据类实现:
公共类Foo:INotifyPropertyChanged
{
私人弦杆;
私有字符串baz;
公共字符串栏
{
获取{返回this.bar;}
设置
{
这个.bar=值;
//这就是绑定的魔力所在
本条关于不动产变更(“酒吧”);
}
}
//其他同学在这里。。。
}
通过绑定在XAML中引用:
最后,使用DataContext
和窗口中的路由事件处理程序将这些绑定连接起来
公共窗口1()
{
this.InitializeComponent();
//设置绑定使用的DataContext
这个.Clear();
}
私有无效清除按钮\u单击(对象发送者,路由目标)
{
这个.Clear();
}
私人空位清除()
{
this.DataContext=new Foo();
}
这种方法将推动您更好地处理更复杂的UI
最后的努力是:
///这是一个错误的选择。
私有无效清除按钮\u单击(对象发送者,路由目标)
{
//假设网格名为MyGrid
foreach(此.MyGrid.Children.OfType()中的var textBox)
{
textBox.Text=null;
}
}
确定类型的奇怪方法。如果我有一个名为MyNamespace.TextBox
?:-)的类型怎么办好的,最后一条注释是,即使您的代码有点不同,也要遵循。更好的方法是使用OfType
Linq方法:foreach(myGrid.Children.OfType()中的文本框tb){}
。或者,使用as
操作符,而不是直接比较类型,因为它支持继承:var-controlAsTextBox=control-as-TextBox;如果(controlAsTextBox!=null){}
+1我完全同意你的观点,但仍然想回答这个问题,你也可以使用Linq方法,of type
:forech(grid.Children.OfType()中的文本框tb){}
。