我知道这很简单。
我Mainwindow
有一个文本框。在文本框内容上更改事件,即textboxtext_changed
,之后我希望文本框再次变为空。
我在其他类中有一个函数,它在textboxtext_changed
中执行。我想在其他类中清除函数中的文本框,但我无法访问主窗口控件,我不想在那里创建mainwindow的实例。
有没有简单的方法呢?
答案 0 :(得分:2)
public void function(ref TextBox textBox)
{
textbox.Text = string.empty;
}
答案 1 :(得分:1)
从TextChanged函数中,您可以从发件人
访问TextBoxprivate void textBox1_TextChanged(object sender, EventArgs e)
{
((TextBox)sender).Text = "";
}
答案 2 :(得分:0)
使用MVVM可以非常轻松:
TextBox.Text
属性绑定到此字符串属性,并将UpdateSourceTrigger设置为PropertyChanged,将Mode设置为TwoWay。<强>视图模型强>
public class MyViewModel : INotifyPropertyChanged
{
private string someText;
public string SomeText
{
get
{
return this.someText;
}
set
{
this.someText = value;
if (SomeCondition(this.someText))
{
this.someText = string.Empty;
}
var epc = this.PropertyChanged;
if (epc != null)
{
epc(this, new PropertyChangedEventArgs("SomeText"));
}
}
}
}
<强> XAML 强>
<TextBox Text="{Binding SomeText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>