Effective C# 原则38:使用和支持数据绑定
2009-02-19 08:15:45 来源:WEB开发网这样,你就创建了一个简单的数据结构来帮助你所包含的数据结构来进行数据绑定:
// Use the same datasource. That creates one Binding Manager
textBox1.DataBindings.Add ("Text", src, "Results.Profit");
textBox1.DataBindings.Add ("ForeColor",src,”ProfitForegroundColor");
我已经创建了一个只读的属性,用于访问核心的财政数据结构。这种构造在你试图支持对数据的读写操作时不能工作,FinancialResults结构是值类型,这就是说获取访问器不提供对存储空间的访问,它只是返回一个拷贝。这样的方式很乐意返回一个拷贝,而这样的拷贝并不能在数据绑定中进行修改。然而,如果你试图对数据进行编辑时,FinancialResults类应该是一个类,而不是一个结构(参见原则6)。做为一个引用类型,你的获取访问器返回一个内部存储的引用,而且可以被用户编辑。内部的结构应该须要对存储的数据发生改变时做出响应。FinancialResults应该触发事件来告诉其它代码这一状态的改变。
有一个很重要的事情要记住:把数据源用在同一表单中的所有相关控件上。使用DataMember属性来区别每个控件显示的属性。你可以像这样写绑定过程:
// Bad practice: creates two binding managers
textBox1.DataBindings.Add ("Text",src.Results, "Profit");
textBox1.DataBindings.Add ("ForeColor",src,“rofitForegroundColor");
这会创建两个绑定管理者,一个为src对象,另一个为src.Results对象。每个数据源由不同的绑定管理者控制,如果你想让绑定管理者在数据源发生改变时,更新所有的属性,你须要确保数据源是一致的。
更多精彩
赞助商链接