我知道這很簡單。訪問類
我有Mainwindow
它有一個文本框。在文本框內容更改事件發生,即textboxtext_changed
之後,我希望文本框再次變空。
我在其他類中有一個函數,它在textboxtext_changed
中執行。我正在考慮在其他類的函數中清除文本框,但是我無法訪問mainwindow控件,我不想在那裏創建mainwindow的實例。
有沒有簡單的方法來做到這一點?
我知道這很簡單。訪問類
我有Mainwindow
它有一個文本框。在文本框內容更改事件發生,即textboxtext_changed
之後,我希望文本框再次變空。
我在其他類中有一個函數,它在textboxtext_changed
中執行。我正在考慮在其他類的函數中清除文本框,但是我無法訪問mainwindow控件,我不想在那裏創建mainwindow的實例。
有沒有簡單的方法來做到這一點?
public void function(ref TextBox textBox)
{
textbox.Text = string.empty;
}
從您的框TextChanged功能,您可以從發送者
private void textBox1_TextChanged(object sender, EventArgs e)
{
((TextBox)sender).Text = "";
}
但它永遠不會顯示它執行的文本功能清除速度非常快,以至於我永遠無法看到文本框中的內容 – uncia
是的。每次他們按下一把鑰匙時,都會被擦掉,因爲我們正在擦除它。但是我假設你在讓這行代碼執行並擦除之前,想對文本做些什麼。在執行此行之前先將代碼放入。 –
如果您想要清除該類中的文本框,但不是在TextChanged事件中,那麼您需要查看上面的Anandkumar解決方案。將文本框作爲參數傳遞到類中,或者爲該類設置文本框屬性,並將其作爲值分配給文本框,以便在需要時可以在類中使用它。 –
訪問TextBox控件以及MVVM它可以很容易的:
TextBox.Text
屬性綁定到此字符串屬性,並將UpdateSourceTrigger設置爲PropertyChanged並將模式設置爲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}"/>
+1我,但爲什麼裁判? –
這是函數,它是如何解決問題,如果我把字符串.empty在textboxtext_changed然後它得到空白,儘快執行函數即使我沒有看到文本,即使它在此之前是空白 – uncia