2010-11-20 50 views
2

私は、私が持っているデータベーステーブルによって占められているコンボボックスを持っています。私のフォームのための私のLoadイベントでは、私はそれは私の問題は、私は私が見つけることができません保存されてきた事業を「削除」するたびに私は、「追加」、「編集」である、またはVB.net:コンボボックスを "リフレッシュ"するにはどうすればよいですか?

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

...によって取り込まれています私が持っているコンボボックスを更新する方法。私のプログラムを終了して再び開くと、私はその変更を見ることができますが、誰かが変更が起こった後にそれを更新する方法を私に知らせることを望んでいました。

+0

あなたが関数にAdapter.Fillコードを入れていることを思い出すことができませんでしたいつでもリフレッシュしたい。 –

+0

"Add"と "Edit"を実行すると、これらのフォームが追加フォームを起動し、その後にコンボボックスフォームに戻ります。私は同じフォームにとどまるので、あなたの提案を私の "Delete"ボタンで試してみましたが、うまくいきませんでした。 – daveomcd

答えて

2

問題は、INotifyCollectionChangedを実装するものが必要なことです。

MSDN

あなたはIEnumerableを インタフェースを実装する任意のコレクション を超える列挙することができます。ただし、コレクションの挿入または の削除が のUIを自動的に更新するように動的 バインディングを設定するには、コレクションに がINotifyCollectionChanged インターフェイスを実装する必要があります。このインターフェイスは、 CollectionChangedイベントを公開します。 の基になるコレクションが変更されるたびに が発生するイベントです。

あなたはそれを手動で更新することができますが、理想的な状況が観察コレクションクラスにバインドされる - http://msdn.microsoft.com/en-us/library/ms668604.aspx HTH

ウェイド

+0

私はそれを見てきましたが、私はまだかなり新しいことがあるので、私はそれを働かせることができませんでした。誰かがいくつかの例/疑似コードを持っているかもしれませんか?ありがとう! – daveomcd

+0

私ができることを見てみましょう。 – Wade73

+0

http://stackoverflow.com/questions/253843/simple-datagridview-refresh-questionこれは私が望んでいるように見えますが、コンボボックスの代わりにdatagridviewになります。私は実際にそこに持っているようにリストを作成しません。私のコンボボックスは私のBindingSourceによって設定されています。バインディングソースは私がアクセスできるリストを提供していますか? – daveomcd

1

データセットを使用している場合は、基になるデータセットが変更されたときにイベントを発生させるdataviewクラスを使用できます。次に、コンボボックスにデータをバインドするデータを調べるか、独自の更新コードを記述して、リストが変更されたときに発生するイベントのイベントハンドラに配置します。

関連する問題