3

DevExpress ComboBoxEdit を使用しており、リストをそのデータソースにバインドする必要があります。しかし、私が見ることができるように、データソースをコントロールに追加する方法はありません。そのため、次のように各項目を1つずつコントロールに追加しました

foreach (var item in list) {
    comboBoxEdit1.Properties.Items.Add(item);
}

うまくいきましたが、データが多いと遅くなります。
リストをコントロールに直接バインドする方法はありますか?

4

3 に答える 3

9

ComboBoxEditは、単純な事前定義された値のセットが必要な場合に使用するように設計されているため、ComboBoxEditをデータソースに直接バインドする方法はありません。データソースを使用する必要がある場合は、LookUpEditを使用してください。ComboBoxItemCollection.BeginUpdateメソッドとComboBoxItemCollection.EndUpdate
メソッドを 使用して、アイテムコレクションの変更中に過度の更新が行われないようにすることができます。

ComboBoxItemCollection itemsCollection = comboBoxEdit1.Properties.Items;
itemsCollection.BeginUpdate();
try {
    foreach (var item in list) 
        itemsCollection.Add(item);
}
finally {
    itemsCollection.EndUpdate();
}
于 2012-09-24T04:28:22.473 に答える
4

以下は、linq ワンライナーを使用してアイテムをまとめてコンボボックスに追加する別の方法です。

  comboBoxEdit1.Properties.Items.AddRange(newItems.Select(x => x.SomeStringPropertyHere as object).ToArray());

.AddRange() メソッドは、BeginUpdate()/EndUpdate() を内部的に呼び出します。

于 2016-05-27T11:04:36.480 に答える