簡體   English   中英

DataGridView數據源

[英]DataGridView datasource

我有一個DataGridView和一個從SQL表填充的一些對象的列表。 我用兩種方法將列表綁定到網格。

1.將列表直接用於數據源

grdSomeList.DataSource = GetListSomeObjects();

2.使用綁定源

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

綁定數據源的最佳做法是什么? 這兩個背后是否有一些具體原因?

如果是單向綁定,請使用第一種方式。

如果是雙向綁定,則使用第二種方式,這意味着當用戶更改DataGridView Cells時,更改將保留/保留在GetListSomeObjects()數據源中。

您尚未指定這是否是WPF,Winforms,Web,但您可以閱讀有關BindingSourceOne,Two等等方式綁定的更多信息

雙向

導致更改源屬性或目標屬性以自動更新另一個屬性。 此類綁定適用於可編輯表單或其他完全交互式UI方案。

單程

綁定源(源)更改時更新綁定目標(目標)屬性。 如果綁定的控件是隱式只讀的,則這種類型的綁定是合適的。 例如,您可以綁定到股票代碼等來源。 或者,您的目標屬性可能沒有為進行更改而提供的控制接口,例如表的數據綁定背景顏色。 如果不需要監視目標屬性的更改,則使用OneWay綁定模式可以避免TwoWay綁定模式的開銷。

一度

在應用程序啟動時或數據上下文更改時更新綁定目標。 如果您使用的數據適用於當前狀態的快照或數據是真正靜態的,則此類型的綁定是合適的。 如果要使用源屬性中的某個值初始化目標屬性並且事先不知道數據上下文,則此類型的綁定也很有用。 這實際上是OneWay綁定的一種更簡單的形式,在源值不變的情況下提供更好的性能。

OneWayToSource

目標屬性更改時更新source屬性。 默認值使用綁定目標的默認模式值。 每個依賴項屬性的默認值都不同。 通常,用戶可編輯的控件屬性(例如文本框和復選框的屬性)默認為雙向綁定,而大多數其他屬性默認為單向綁定。 確定依賴項屬性是默認綁定單向還是雙向的一種編程方法是使用GetMetadata獲取屬性的屬性元數據,然后檢查BindsTwoWayByDefault屬性的布爾值。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM