2016-10-08 10 views
0

デザイナー上のオブジェクトからコンボボックスにデータをバインドしようとしていますが、アイテムは表示されません。 enter image description hereWindowsフォームでのデータバインド

しかし、私は、私はデザイナーからの私のコレクションをバインドできenter image description here

どのように...背後にあるコードから指定したときにそれらが表示されます?あなたが選択デザイナー からアイテムをバインドしたい場合は

+0

'itemsBindingSource.DataSource = Items; 'を設定するのを忘れてしまった可能性があります。' Items'を読み込んだ後にこのコード行を追加してください。 –

+0

Windowsフォームでは、バインドされたリストコントロール(複雑な双方向データバインディング)のデータソースを変更する場合は、 'IBindingList'を' DataSource'として実装し、最も適切な実装は 'System.ComponentModel.BindingList 'です。 Aよくある間違いは 'ObservableCollection'を使っていますこれは 'IBindingList'を実装していないためです。この記事は便利です:[ListBoxにリストを接続](https://stackoverflow.com/questions/33623991/connect-listt-to-a-listbox) –

答えて

1

一覧からプログラムによる追加フォームアプリケーション。 combobox.ItemSource = List<string>を設定するだけです。現在の値を取得する場合は、combobox.SelectedItemまたはcombobox.SelectedValueを使用して現在の値を取得してください。
(ps。observableプロパティはgetメソッドとsetメソッドを持っている必要があります。setメソッドではRaisePropertyChanged("propertyname")メソッドを呼び出す必要があります。これはUIパートとimport sometingで何らかの変更を行う必要がありますどのように動作するのかは複雑ですが、複雑です。

+0

Windowsフォームのデータバインディングで 'List 'と 'ObservableCollection 'の間に違いはありません。 –

+0

BindingList とObservableCollection は両方とも動作し、項目はコンボボックスで表示されます。私はDesigner/Propertiesから参照できるかどうかを知りたいと思っています。しかし、まだ失敗しました。私は今理解しています! .. –

1

- >項目コレクションのプロパティ]ウィンドウから pic

WindowsでUIをバインドするために使用するのObservableCollectionを必要としない

List<string> values = new List<string>(); 

    private void AddItemProg() 
    { 
     values.Add("Name"); 
     values.Add("Age"); 
     values.Add("DOB"); 
     values.Add("Address"); 

     comboBox1.Items.Clear(); 

     for (int nIndex = 0; nIndex < values.Count; nIndex++) 
     { 
      string v = values[nIndex]; 
      comboBox1.Items.Add(v); 
     } 
    } 
+0

'Items'コレクションに値を手動で追加することはできますがOPはデータバインディングを使用しようとしています。 –

関連する問題