[转] C# TextBox、DataGrideView中的数据绑定
Xavierr?原文?C#數(shù)據(jù)綁定——簡單的文本框綁定、DataGridView
?
一、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的值,是單向綁定。
| 1 2 3 4 5 6 | 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接 口。
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 | 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使用的單向綁定。
?
二、DataGridView的數(shù)據(jù)綁定
沒什么可說的,DataGridView可以綁定DataSet,也可以綁定DataTable。直接設置DataSource屬性。
| 1 2 3 | DataSet dataSet =?new?DataSet(); dataGridView1.DataSource = dataSet; dataGridView1.DataSource = dataSet.Tables[0]; |
?設置DataGridView的Column屬性就可以決定哪一列顯示的數(shù)據(jù)。
| 1 | Column1.DataPropertyName =?"ID" |
?
沒有整理與歸納的知識,一文不值!高度概括與梳理的知識,才是自己真正的知識與技能。 永遠不要讓自己的自由、好奇、充滿創(chuàng)造力的想法被現(xiàn)實的框架所束縛,讓創(chuàng)造力自由成長吧! 多花時間,關心他(她)人,正如別人所關心你的。理想的騰飛與實現(xiàn),沒有別人的支持與幫助,是萬萬不能的。本文轉自wenglabs博客園博客,原文鏈接:http://www.cnblogs.com/arxive/p/5814894.html,如需轉載請自行聯(lián)系原作者
總結
以上是生活随笔為你收集整理的[转] C# TextBox、DataGrideView中的数据绑定的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Zurmo - - 全局配置
- 下一篇: ***解决UEditor编辑器无法插入第