您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么在C#中綁定TextBox數據,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
1. 首先C#的TextBox本身就帶數據綁定功能。
下面的代碼就是把_myData對象的"TheValue"屬性綁定到textBox1和textBox2的"Text"屬性。最后一個參數不同:
1)其中DataSourceUpdateMode.OnPropertyChanged表示textBox1.Text發生變化,_myData.TheValue也變化,叫雙向綁定。
2)DataSourceUpdateMode.Never表示Text1.Text變化不影響_myData.TheValue的值,是單向綁定。
private void Form1_Load(object sender, EventArgs e) { _myData = new MyData(); textBox1.DataBindings.Add("Text", _myData, "TheValue", false, DataSourceUpdateMode.OnPropertyChanged); textBox2.DataBindings.Add("Text", _myData, "TheValue", false, DataSourceUpdateMode.Never); }
2.也許有人留意到了,為什么上面的叫"雙向綁定"呢?如果_myData.TheValue的值變化了,兩個文本框的Text會變化嗎?不錯,僅在 textBox上數據綁定還不叫雙向綁定,對象數據變化要通知綁定該對象的控件才行。這樣就需要對象實現INotifyPropertyChanged接 口。
public class MyData : INotifyPropertyChanged { private string _theValue = string.Empty; public string TheValue { get { return _theValue; } set { if (string.IsNullOrEmpty(value) && value == _theValue) return; _theValue = value; NotifyPropertyChanged(() => TheValue); } } public event PropertyChangedEventHandler PropertyChanged; public void NotifyPropertyChanged<T>(Expression<Func<T>> property) { if (PropertyChanged == null) return; var memberExpression = property.Body as MemberExpression; if (memberExpression == null) return; PropertyChanged.Invoke(this, new PropertyChangedEventArgs(memberExpression.Member.Name)); } }
3.好了,數據綁定完成了,看看效果吧。textBox1.Text變化—>_myData.TheValue變化—>textBox2.Text變化。反過來textBox2.Text變化就不是這樣了,因為textBox2使用的單向綁定。
C#是一個簡單、通用、面向對象的編程語言,它由微軟Microsoft開發,繼承了C和C++強大功能,并且去掉了一些它們的復雜特性,C#綜合了VB簡單的可視化操作和C++的高運行效率,以其強大的操作能力、優雅的語法風格、創新的語言特性和便捷的面向組件編程從而成為.NET開發的首選語言,但它不適用于編寫時間急迫或性能非常高的代碼,因為C#缺乏性能極高的應用程序所需要的關鍵功能。
上述就是小編為大家分享的怎么在C#中綁定TextBox數據了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。