2016-08-10 22 views
1

私は簡単な回避策があると思われる何らかの問題を抱えています。コンボボックスで重複オブジェクトの値を隠す#

私は、コンボボックスにバインドされているクラスとは異なるオブジェクトを持っています。

MyClass myclassObj = new MyClass(); 
    bindingSource1.DataSource = myclassObj.myList; 
    combobox1.DataSource = bindingSource1; 

これは、私のToString()オーバーライドが "name"というプロパティを出力するという問題です。さて、私のオブジェクトは時には同じ名前を持っていますが、私のコンボボックスは重複しているように見えます(異なるオブジェクトでも)。

私の質問は、これらの重複する名前を非表示にする方法はありますか?

+3

下記のとおり、私は重複せずにオブジェクトのリストを返す – Steve

+1

表示文字列が重複しているが、それらは異なるオブジェクトですがMyClassのに別のプロパティを追加します。それらの重複を隠すべきではなく、表示文字列を適切な値に変更する必要があります。重複を削除すると、参照リストの一部のオブジェクトはコンボボックスで選択できなくなります。 –

+0

これには数多くの質問があります。これはおそらく最も関連性があります:http://stackoverflow.com/questions/12757138/remove-duplicates-from-combobox-which-is-bind-to-datasetまたはこれ:http://stackoverflow.com/questions/4753768/データバインドされたコンボボックスの個別の値 – RIanGillis

答えて

0

あなたはコンボボックスから重複した値を削除するために、リストから重複する値を直接削除するか、以下のコードを使用してコンボボックスから重複した値を削除することができます。

MyClass myclassObj = new MyClass(); 
bindingSource1.DataSource = myclassObj.myList; 
combobox1.DataSource = bindingSource1; 

//just add below three line 
var itemArry= combobox1.Items.SelectMany(i => i).Distinct().ToArray(); 
combobox1.Items.Clear(); 
combobox1.Items.AddRange(itemArry); 
関連する問題