私の質問は、「selectedItemとテキスト値を変更/入力せずにデータをcomboBoxにバインドする方法はありますか?」です。(コンボボックスを空白のままにしておきたい)
これは私がしていることの例です:
Dictionary<int,string> test = new Dictionary<int,string>();
test.Add(1, "Company1");
test.Add(2, "Company2");
test.Add(3, "Company3");
test.Add(4, "Company4");
test.Add(5, "Company5");
test.Add(6, "Company6");
var list = test.Select(x => new { CompanyName = x.Value }).ToList();
comboBox1.DataSource = list;
comboBox1.DisplayMember = "CompanyName";
comboBox1.ValueMember = "CompanyName";
comboBox1.SelectedItem = null;
このコードを実行すると、読み込みが非常に速く、comboBoxが空白のままであるように見えるため、正常に機能します。
ただし、コードをステップ実行すると、データソースが「リスト」に割り当てられたときに、SelectedItemとTextの値が変更されることがわかります。
私の実際のLINQクエリはかなり大きいため、読み込みが遅くなります。私のコンボボックスは、テキスト値がクリアされる前に「フラッシュ」します。この醜いフラッシュを削除したいと思います。
DataSource割り当ての前後でSelectedItemとTextの値をnull(または "")に設定するさまざまな組み合わせを試しましたが、"flash"を消すことができません。
どんな提案でも大歓迎です!=)
編集:これは最初のフォームの読み込み時にのみ発生することも追加したいと思います...バインディングソースを変更してから元のコードにリセットすると(まったく同じコードを再度実行すると)、「フラッシュ」されません...これが役立つか、違いを生むかどうかわからない...