List<string>
とComboBox
を同期させる方法はありますか?コンボボックスとリストを同期させる<string> [C#]
私の持っているものは、ComboBoxで、Listの変更に応じてコンテンツを自動的に更新します。
私はComboBox.DataSource
プロパティを使用して試してみたが、これはコンボボックスを更新しません、それは一度だけ、それを埋め、それはすべてのその後ですので...
List<string>
とComboBox
を同期させる方法はありますか?コンボボックスとリストを同期させる<string> [C#]
私の持っているものは、ComboBoxで、Listの変更に応じてコンテンツを自動的に更新します。
私はComboBox.DataSource
プロパティを使用して試してみたが、これはコンボボックスを更新しません、それは一度だけ、それを埋め、それはすべてのその後ですので...
がObservableCollection<string>
であなたのList<string>
を交換してみてください。
サンプルをご覧ください:How to: Create and Bind to an ObservableCollection
バインディングソースの詳細:Binding Sources Overview。
更新:WinForms ComboBox data binding gotcha:
申し訳ありませんが、私はあなたがそう質問を参照してください、Windowsフォームを使用していることを言及していません。
BindingSourceオブジェクトを使用してください。
List<string> list = new List<string>();
BindingSource bsource=new BindingSource();
//Set list dataSource
bsource.DataSource = list;
comboBox1.DataSource = bsource;
//Now add an element via Binding object
bsource.Add("One");
bsource.Add("Two");
それとものIListのアダプタのラッパーを作成ArrayList.Adapter方法を試してください。
ArrayList items;
items=ArrayList.Adapter(comboBox1.Items);
items.Add("one");
これは 'BindingSource'オブジェクトを使って動作します!残っている問題は1つだけです:私はこのリストを使用して多くのコンボボックスをインスタンス化し、すべてのコンボボックスは一緒に同期されています... – Jsncrdnl
それは私と同じ結果が得られるので、コンボボックス – Jsncrdnl
あなたがデータバインディングを使用していますが動作しない、事は、私はおそらくそれを悪い方法を使用しているということです。 ..どのようにComboBoxのデータリソースとしてそれを設定しますか?私は '.DataSource'を試してみましたが、うまくいかなかったのですが、' .DataBindings'を使っている場合は型が受け入れられません... 'ItemsSource'を試したところ、プロパティは存在しません。 – Dominik
のItemsSourceプロパティを使用している場合...それは – Jsncrdnl