我有一個winform應用程序,我添加數據綁定到使用代碼的幾個控件。vb.net使數據綁定只讀
Dim tblWrapper As ObliqueQCAndSpliceTool.TableWrapper = New ObliqueQCAndSpliceTool.TableWrapper(tbl, idField.Name)
tblWrapper.UseCVDomains = True
bindSource = New BindingSource
bindSource.DataSource = tblWrapper
bindMgr = BindingContext(bindSource)
bindSource.SuspendBinding()
Dim idBinding As Binding = New Binding("Text", bindSource, idField.Name)
txtPointID.DataBindings.Add(idBinding)
然後,我有其他代碼,可能會自動更改這些控件中的值,因爲用戶移動列表中的記錄。我有一個要求添加一個簡單的按鈕,將禁用/重新啓用這些控件的編輯。換句話說,啓用時,用戶或程序可以編輯控件,新值將保存在源數據集中。禁用時,控件仍應顯示源數據集中的值,但用戶或程序應能夠更改這些值。
我已經研究了BindingList
(tablewrapper)和BindingSource
創建數據綁定但沒有運氣的對象的AllowEdit
屬性。
是否有辦法將所有數據綁定更改爲只讀而不更改每個控件或重置所有綁定?
UPDATE:
我試圖通過@LarsTech提供的解決方案,但由於周圍的綁定是如何設置一些範圍的問題,我無法修改更新模式,而無需重新創建所有綁定。我決定簡單地禁用以編程方式更改控件中的值的所有代碼,並在按鈕設置爲禁用時禁用所有控件。
修改視圖,而不是數據源。您可以使視圖只讀,並且可以在關聯的.cs文件中的on_click偵聽器中更改該屬性。 – evanmcdonnal 2012-03-06 22:26:56
不幸的是,該數據集不在傳統數據庫中,因爲它是地理信息系統中的空間數據集。在這種情況下,我不確定我是否有看法。 – Brian 2012-03-06 22:30:57