C# TextBox數(shù)據(jù)綁定的方法
經(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ù)變化要通知綁定該對象的控件才行。這樣就需要對象實(shí)現(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變化就不是這樣了,因?yàn)閠extBox2使用的單向綁定。

以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
http圖片上傳安全性問題 根據(jù)ContentType (MIME) 判斷其實(shí)不準(zhǔn)確、不安全
圖片上傳常用的類型判斷方法有這么幾種---截取擴(kuò)展名、獲取文件ContentType (MIME) 、讀取byte來判斷(這個什么叫法來著?)。下面由腳本之家小編跟大家分享圖片上傳安全性問題,感興趣的朋友一起看看吧2015-09-09
C#實(shí)現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法
這篇文章主要介紹了C#實(shí)現(xiàn)HTML轉(zhuǎn)WORD及WORD轉(zhuǎn)PDF的方法,涉及C#實(shí)現(xiàn)HTML、WORD及PDF等文件格式轉(zhuǎn)換的相關(guān)技巧,需要的朋友可以參考下2015-09-09
C# 調(diào)用 JavaWebservice服務(wù)遇到的問題匯總
本文給大家分享的是個人在使用C#調(diào)用 JavaWebservice服務(wù)遇到的幾個問題的解決方法的匯總,給有類似需求的小伙伴們參考下吧。2016-01-01
C#采用FileSystemWatcher實(shí)現(xiàn)監(jiān)視磁盤文件變更的方法
這篇文章主要介紹了C#采用FileSystemWatcher實(shí)現(xiàn)監(jiān)視磁盤文件變更的方法,詳細(xì)分析了FileSystemWatcher的用法,并以此為基礎(chǔ)實(shí)現(xiàn)監(jiān)視磁盤文件變更,是非常實(shí)用的技巧,具有一定的借鑒價值,需要的朋友可以參考下2014-11-11

