14

リストをコンボボックスにバインドした後、そのdataSource.Countは5ですが、コンボボックスのアイテム数は0です。どうすればよいでしょうか。

私はWebプログラミングに慣れており、これはWindowsフォームにあります。したがって、combo.DataBind();メソッドは存在しません。

ここでの問題は、選択したアイテムをプログラムで設定しようとしていることです。combo.Itemsコレクションがいっぱいになっていないので、希望のアイテムを設定できません。


アップデート

完全な更新が必要だと思います:

  • データソースには7つのアイテムが含まれています
  • コンボボックスにバインドされ、適切に実装されているDisplayMember場合ValueMember
  • データバインド後、GUIを介して、コンボボックス内の7つのアイテムをはっきりと見ることができます
  • combobox.DataSource.Count = 7combobox.Items.Count = 0

したがって、問題はここにあります。データバインド後、コンボボックスのItemCollectionにアイテムがないため。一致するものを検索して適切なものを設定することができません。

これは理解を深めるための画像です(しかし、私はsth simpleを見逃していると確信しています)

スクリーンショット

4

3 に答える 3

24

割り当てのddl.BindingContext = new BindingContext();前に追加した後、すべてが正常に機能しました。BindingSource

于 2012-08-07T14:57:31.400 に答える
1

デバッガーでDataSourceアイテムを展開すると、リストの最初の要素がnullであることに気付くでしょう。これが、DataSourceがComboBoxアイテムをレンダリングしない理由です。リストからnullアイテムを削除すると、すべての作業が実行されます。

于 2016-01-05T11:24:34.463 に答える
0

私も同じ問題を抱えていましたが、私の場合は

combobox.Sorted = True

InitializeComponent。呼び出しが初期化されると思いますItems。これにより、への割り当てがDataSource更新されなくなります(Items)。

于 2018-12-05T10:49:47.047 に答える