2008-10-21 59 views
5

我有一個DataTable,它具有一個名爲[Invalid]的布爾列。我需要將此數據分爲無效列 - 有效行可以編輯,無效行不能。我最初的計劃是使用兩個BindingSource並設置Filter屬性(例如[Invalid] ='false'),因爲我有兩個DataGridView,所以我需要兩個BindingSources。在一個DataTable上使用多個BindingSources

這不起作用:BindingSources設置與DataTable關聯的Filter屬性,因此兩個BindingSources都保存相同的數據。我將不得不從數據庫中執行兩次提取操作,還是可以按照我所需的對象執行操作?

回答

5

我不認爲你可以像你希望的那樣去做。

你可以使用同一個數據表的兩個不同的數據視圖,並綁定你的datagridviews?

5

當您綁定到DataTable時,您將有效地綁定到其默認視圖(DataTable.DefaultView)。並且,當您設置BindingSource的Filter屬性時,您將設置默認視圖的Filter屬性,並覆蓋由其他BindingSource設置的Filter。

所以deadcat's answer is correct:你需要綁定到數據表兩種不同的觀點(其中之一可以是默認視圖,如果您喜歡):

bindingSource1.DataSource = myDataTable; 
bindingSource2.DataSource = new DataView(myDataTable); 

bindingSource1.DataSource = new DataView(myDataTable); 
bindingSource2.DataSource = new DataView(myDataTable); 
相關問題