Effective C# 原则38:使用和支持数据绑定
2009-02-19 08:15:45 来源:WEB开发网通过这个例子,我演示了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
}
更多精彩
赞助商链接