ListBox.Refresh() メソッドを誤解しているようで、誰かが助けてくれることを望んでいました。
私がやろうとしていること:
Windows フォームの初期化時にリストボックスのデータ (ソース = SQL データベースのテーブル) をロードしたい。また、ユーザーがデータベースにデータを追加すると、リストボックスを更新したいと思います。
ロジック:
ソースとして sql データベースがあり、次のように設定されています。
listBoxDays.DataSource = DBQuery.informationRetreval().DefaultView;
DBquery.informationRetreval() は、DBQuery 静的クラス内の静的メソッドです。データベースからテーブルをセットアップし、テーブルを返すだけです。
initializeComponent と同じメソッド内でデータソースを設定します (リストボックスに既存のデータが読み込まれるようにします)。
public Settings()
{
InitializeComponent();
listBoxDays.DataSource = DBQuery.informationRetreval().DefaultView;
}
ユーザーがさらにデータを追加すると: データベースにデータを追加するメソッドを呼び出してから、次のように呼び出します。
listBoxDays.Refresh(); //update listbox
問題: リストボックスが更新されません。リストボックスを初期化すると、データが入力されますが、その後は変更されません (したがって、更新は機能しません)。何故ですか?DataSource を再度設定することはできますが、それはだらしがありません。いくつかのドキュメントを調べた後、イベント ハンドラー DataSourceChanged に気付きました。それにもかかわらず、なぜ仕事をリフレッシュしないのでしょうか?
お待ちいただいてありがとうございます。もっと明確にする必要がある場合はお知らせください。