2013-03-19 80 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

相關問題