WEB开发网
开发学院软件开发C语言 Effective C# 原则38:使用和支持数据绑定 阅读

Effective C# 原则38:使用和支持数据绑定

 2009-02-19 08:15:45 来源:WEB开发网   
核心提示: 通过这个例子,我演示了Windows表单的数据绑定,Effective C# 原则38:使用和支持数据绑定(3),同样的在web应用程序中也是一样的原则:你可以很好的绑定数据源的属性到web控件的属性上:<asp:TextBox id=TextBox1 runat="ser

通过这个例子,我演示了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
}

上一页  1 2 3 4 5  下一页

Tags:Effective 原则 使用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接