国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C# TextBox數(shù)據(jù)綁定的方法

2019-10-29 19:58:54
字體:
供稿:網(wǎng)友

經(jīng)常寫用一個TextBox顯示某個對象,然后編輯之后再保存的程序。以前都是在TextBox_TextChanged事件中修改對象的值,或者保存的時候再讀取TextBox.Text屬性保存對象的值。這樣比較麻煩,而且經(jīng)常容易出錯。后來了解了C#的數(shù)據(jù)綁定,發(fā)現(xiàn)能夠很好的解決這個問題。

1. 首先C#的TextBox本身就帶數(shù)據(jù)綁定功能。

下面的代碼就是把_myData對象的"TheValue"屬性綁定到textBox1和textBox2的"Text"屬性。最后一個參數(shù)不同:

1)其中DataSourceUpdateMode.OnPropertyChanged表示textBox1.Text發(fā)生變化,_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上數(shù)據(jù)綁定還不叫雙向綁定,對象數(shù)據(jù)變化要通知綁定該對象的控件才行。這樣就需要對象實現(xiàn)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.好了,數(shù)據(jù)綁定完成了,看看效果吧。textBox1.Text變化—>_myData.TheValue變化—>textBox2.Text變化。反過來textBox2.Text變化就不是這樣了,因為textBox2使用的單向綁定。

C#,TextBox,數(shù)據(jù)綁定

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持VEVB武林網(wǎng)。


注:相關(guān)教程知識閱讀請移步到c#教程頻道。
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 青海省| 崇左市| 宣汉县| 会理县| 正蓝旗| 元江| 西平县| 红河县| 蓝田县| 崇仁县| 泽库县| 新蔡县| 泌阳县| 呼玛县| 扶绥县| 龙里县| 麻江县| 丰原市| 曲水县| 上蔡县| 武陟县| 依兰县| 赫章县| 德昌县| 康平县| 章丘市| 长垣县| 凌源市| 奉新县| 彝良县| 平谷区| 呼伦贝尔市| 图们市| 吉林省| 新民市| 噶尔县| 台中县| 乌兰浩特市| 凭祥市| 特克斯县| 洱源县|