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

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

編輯:關於C語言

簡單的添加綁定到文本框裡就行了:

textBox1.DataBindings.Add ("ForeColor",
src, "ForegroundColor");

當數據綁定配置好以後 ,textBox1會根據內部源對象的值,用正確的顏色來繪制文本。這樣,你就已經 大大減少了從源數據到控件的數據來回傳輸。不再須要對不同地方顯示不同顏色 來處理很多事件了。你的數據源對象保持對屬性的正確顯示進行跟蹤,而表單控 件對數據綁定進行控制。

通過這個例子,我演示了Windows表單的數據綁 定,同樣的在web應用程序中也是一樣的原則:你可以很好的綁定數據源的屬性 到web控件的屬性上:

<ASP:TextBox id=TextBox1 runat="server"
 Text="<%# src.Text % >"
 ForeColor="<%# src.ForegroundColor % >">

這就是說,當你創建一個應用程序在UI上顯示的 類型時,你應該添加一些必須的屬性來創建和更新你的UI,以便用戶在必要時使 用。

當你的對象不支持你要的屬性時怎麼辦呢?那就把它封裝成你想要 的。看這樣的數據結構:

public struct FinancialResults
{
 public decimal Revenue
 {
  get { return _revenue; }
 }
 public int NumberOfSales
 {
   get { return _numSales; }
 }
 public decimal Costs
 {
  get { return _cost;}
 }
 public decimal Profit
 {
  get { return _revenue - _cost; }
 }
}

要求你在一個表單上以特殊的格式信息來顯示這些,如果收 益為負,你必須以紅色來顯示收益。如果薪水小於100,你應該用粗體顯示。如 果開銷在10千(1萬)以上,你也應該用粗體顯示。創建FinancialResults結構的 開發者沒有添加UI功能到這個結構上。這很可能是正確的選擇, FinancialResults應該限制它的功能,只用於存儲實際的值。你可以創建一個新 類型,包含UI格式化屬性,以及在FinancialResults結構中的原始的存儲屬性:

public struct FinancialDisplayResults
{
  private FinancialResults _results;
 public FinancialResults Results
 {
  get { return _results; }
 }
  public Color ProfitForegroundColor
 {
  get
  {
   return ( _results.Profit >= 0 ) ?
    Color.Black : Color.Red;
  }
 }
 // other formatting options elided
}

這樣,你就創建了一個簡單的數據結構來幫助你 所包含的數據結構來進行數據綁定:

// Use the same datasource. That creates one Binding Manager
textBox1.DataBindings.Add ("Text", src, "Results.Profit");
textBox1.DataBindings.Add ("ForeColor",src,”ProfitForegroundColor");

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