2013-03-19 66 views
3

我有一个DataGridView和从SQL表填充的一些对象的列表。我用两种方法将列表绑定到网格。DataGridView数据源

直接1.使用列表中的数据源

grdSomeList.DataSource = GetListSomeObjects();

通过绑定源

_bsSomeList = new BindingSource(); 
_bsSomeList .DataSource = GetListSomeObjects(); 
grdSomeList.DataSource = _bsSomeList ; 

什么是数据源绑定的最佳实践2.使用?这两个背后有一些具体原因吗?

回答

4

如果其单向绑定使用第一种方法。

使用第二种方式,如果它的双向绑定,这意味着当用户更改DataGridView单元格时,更改将保留/保留在GetListSomeObjects()数据源中。

您还没有指定,如果这是WPF中,的WinForms,网站,但你可以更多的BindingSource'sOne, Two & etc Way Binding读了起来:

双向

导致的变化是源属性或目标属性自动更新其他。这种类型的绑定适用于可编辑的表单或其他完全交互式的UI场景。

单向

更新绑定目标(靶)属性绑定源(源)改变时。如果要绑定的控件是隐式只读的,则此类型的绑定是适当的。例如,您可以绑定到股票代码等资源。或者,您的目标属性没有提供用于进行更改的控制界面,例如表格的数据绑定背景颜色。如果不需要监视目标属性的更改,则使用OneWay绑定模式可以避免双向绑定模式的开销。

一次性

更新绑定目标应用程序启动时或当数据上下文改变。如果您使用的数据适合使用当前状态的快照或数据是真正静态的,则此类绑定是适当的。如果要使用源属性中的某个值初始化目标属性,并且事先不知道数据上下文,则此类绑定也很有用。这实质上是OneWay绑定的一种更简单的形式,它在源值不变的情况下提供更好的性能。

OneWayToSource

更新源属性当目标属性的变化。 默认使用绑定目标的默认“模式”值。每个依赖项属性的默认值都不相同。通常,用户可编辑的控件属性(如文本框和复选框的属性)默认为双向绑定,而大多数其他属性默认为单向绑定。确定依赖项属性默认绑定单向还是双向的编程方法是使用GetMetadata获取属性的属性元数据,然后检查BindsTwoWayByDefault属性的布尔值。

+0

这是C#winform。 – Irshad 2013-03-19 03:34:13

相关问题