2012-08-06 9 views
10

リストをコンボボックスにバインドした後、そのdataSource.Countは5ですが、コンボボックスのアイテム数は0です。 どのようにすることができますか?コンボボックスのアイテム空ですがデータソースフル

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

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


更新

総アップデートは、私が推測する必要がある:

  • データソースが適切
  • を実装している7つの項目コンボボックスにバインドされた
  • DisplayMemberValueMemberが含まれています
  • データバインドされた後、GUIを通じて、私ははっきりとコンボボックスでの7つの項目
  • combobox.DataSource.Count = 7combobox.Items.Count = 0

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

screenshot

+1

それに応じて 'DataTextField'と' DataValueField'を設定しましたか? –

+0

または 'DisplayMember'と' ValueMember'です。 DataSourceにはどのようなデータ型がありますか? – Mr47

+0

はい、多分問題は完全に理解できません。 databoundイベントは正常に機能しています。私はGUIを通じてコン​​ボでアイテムを見ることができます。問題は、デバッグ中です。データソースの割り当て後、コンボボックスはItemsコレクションに何かを含んでいません。レンダリングの後と同様に、すべての項目が表示されますが、その前には何も表示されません。 –

答えて

21

BindingSource割り当て前にddl.BindingContext = new BindingContext();を追加した後、すべてがうまく働いた。ここ

は、より良い理解のための画像である(しかし、私はSTHをシンプルに欠けているかなり確信しています)。

+0

私のために働いていません... –

+1

初めてデータソースを使用する場合、すべて正常に動作します。もう一度データソースを使用するとすぐに、バインディングコンテキストを再利用するか、新しいものを作成する必要があります。 – Norman

1

デバッガでDataSource項目を展開すると、リストの最初の要素がnullになっていることに気付くでしょう。そのため、DataSourceはコンボボックスアイテムを表示しません。リストから空の項目を削除すると、すべての作業が完了します。

関連する問題