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

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

 2009-02-19 08:15:45 来源:WEB开发网   
核心提示: 例如,假设只要在数据不合法时,Effective C# 原则38:使用和支持数据绑定(2),要求将文字显示为红色,你可能会写这样的代码:if ( src.TextIsInvalid ){textBox1.ForeColor = Color.Red;} else{textBox1.ForeC

例如,假设只要在数据不合法时,要求将文字显示为红色,你可能会写这样的代码:

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;
}

简单的添加绑定到文本框里就行了:

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

当数据绑定配置好以后,textBox1会根据内部源对象的值,用正确的颜色来绘制文本。这样,你就已经大大减少了从源数据到控件的数据来回传输。不再须要对不同地方显示不同颜色来处理很多事件了。你的数据源对象保持对属性的正确显示进行跟踪,而表单控件对数据绑定进行控制。

上一页  1 2 3 4 5  下一页

Tags:Effective 原则 使用

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