2010-11-20 73 views
2

我有一個組合框,由我擁有的數據庫表填充。在我爲我的表單Load事件我把它填充由...VB.net:如何「刷新」我的組合框?

Me.BusinessTableAdapter.Fill(Me.BillingdbDataSet.Business) 

我的問題是,每當我「添加」,「編輯」或「刪除」商務我已存儲我找不到更新我的組合框的方法。無論何時我退出並重新打開我的程序,我都能看到變化,但希望有人能告訴我如何在變更發生後更新它。

+0

你能不能把Adapter.Fill代碼放到一個函數,回憶一下,每當想要刷新。 – 2010-11-20 20:58:52

+0

我忘記提及,當我做「添加」和「編輯」這些啓動一個額外的形式,然後它回到我的組合框的形式。我在我的「刪除」按鈕上也嘗試了您的建議,因爲它保持在同一個表單上,並且不起作用。 – daveomcd 2010-11-20 21:05:08

回答

2

問題是你需要實現INotifyCollectionChanged的東西。

MSDN

您可以枚舉任何集合 實現IEnumerable接口 。但是,要設置動態的 綁定,以便集合中的插入或 刪除自動更新 用戶界面,集合必須 實現INotifyCollectionChanged 接口。此接口公開 CollectionChanged事件, 底層集合更改時應引發的事件。

您可以手動刷新,但理想的情況是綁定到一個可觀察的集合類 - http://msdn.microsoft.com/en-us/library/ms668604.aspx HTH

韋德

+0

我一直在尋找它,但我猜想,因爲我還是相當新的VB我一直沒能得到它的工作。可能有人有一些例子/僞代碼?謝謝! – daveomcd 2010-11-23 17:01:05

+0

讓我看看我能做些什麼。 – Wade73 2010-11-24 01:44:18

+0

http://stackoverflow.com/questions/253843/simple-datagridview-refresh-questionThis看起來像他們正在做我想要的東西,但到一個datagridview而不是一個組合框。但是我實際上並沒有像他們那裏創建一個列表。我的組合框由我的BindingSource填充。 bindingsource是否提供我可以訪問的列表? – daveomcd 2010-11-24 15:02:27

1

如果您使用的是數據集,則可以使用dataview類,該類在底層數據集發生更改時引發事件。然後,您可以查看將數據綁定到組合框,或編寫自己的更新代碼,並將其放入事件處理程序中,以便列表更改時引發的事件。