程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> 關於C語言 >> Effective C#原則38:使用和支持數據綁定(1)

Effective C#原則38:使用和支持數據綁定(1)

編輯:關於C語言

有經驗的Windows程序員一定對寫代碼從一個控件上取值,以及把值存儲到控 件上很熟悉:

public Form1 : Form
{
 private MyType myDataValue;
 private TextBox textBoxName;
 private void InitializeComponent( )
 {
  textBoxName.Text = myDataValue.Name;
  this.textBoxName.Leave += new
    System.EventHandler( this.OnLeave );
 }
 private void OnLeave( object sender, System.EventArgs e )
 {
   myDataValue.Name = textBoxName.Text;
 }
}

這太 簡單了,正如你知道的,重復代碼。之所以不喜歡這樣重復代碼,就是因為應該 有更好的方法。是的,.Net框架支持數據綁定,它可以把一個對象的屬性映射到 控件的屬性上:

textBoxName.DataBindings.Add ( "Text",myDataValue, "Name" );

上面的 代碼就把textBoxName控件的“Text”屬性上綁定了MyDataValue對象 的"Name"屬性。在內部有兩個對象,綁定管理(BindingManager)和流 通管理(CurrencyManager), 實現了在控件與數據源之間的傳輸實現。你很可能 已經見過為種結構的例子,特別是在DataSet和DataGrid之間的。你也很可能已 經做過數據綁定的例子。你很可能只在表面上簡單的使用過從數據綁定上得到的 功能。你可以通過高效的數據綁定避免寫重復的代碼。

關於數據綁定的 完整處理方案可能至少要花上一本書來說明,要不就是兩本。Windows應用程序 和Web應用程序同時都支持數據綁定。比寫一個完整的數據綁定論述要強的是, 我確實想讓你記住數據綁定的核心好處。首先,使用數據綁定比你自己寫代碼要 簡單得多。其次,你應該在對文字元素通過屬性來顯示時,盡可能的使用它,它 可以很好的綁定。第三,在Windows窗體中,可以同步的對綁定在多控件上的數 據,進行相關數據源的檢測。

例如,假設只要在數據不合法時,要求將 文字顯示為紅色,你可能會寫這樣的代碼:

if ( src.TextIsInvalid )
{
 textBox1.ForeColor = Color.Red;
} else
{
 textBox1.ForeColor = Color.Black;
}

這很好,但只要在文字源發生改變時,你要隨時調用這段代碼。 這可能是在用戶編輯了文字,或者是在底層的數據源發生改變時。這裡有太多的 事件要處理了,而且很多地方你可能會錯過。但,使用數據綁定時,在src對象 上添加一個屬性,返回恰當的前景顏色就行了。

另一個邏輯可能是要根 據文字消息的狀態,來設置值可變化為恰當顏色的值:

private Color _clr = Color.Black;
public Color ForegroundColor
{
 get
 {
  return _clr;
 }
}
private string _txtToDisplay;
public string Text
{
 get
 {
  return _txtToDisplay;
 }
 set
 {
  _txtToDisplay = value;
  UpdateDisplayColor( IsTextValid( ) );
 }
}
private void UpdateDisplayColor( bool bValid )
{
 _clr = ( bValid ) ? Color.Black : Color.Red;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved