1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
|
Exemple de classe :
Public class TUTU
{
public string champ1;
public string champ2;
}
List<TUTU> taListe = new List<TUTU>();
taListe.Add(new TUTU() { champ1 = "a", champ2 = "b" });
taListe.Add(new TUTU() { champ1 = "a", champ2 = "c" });
taListe.Add(new TUTU() { champ1 = "a", champ2 = "d" });
//Si tu veux juste passer une chaine dans la combo et non l'objet:
laCombo.ItemsSource = taListe.Select(x=>x.champ1).Distinct();
//Sinon si tu veux passer une liste d'objets à ta combo et afficher que le
//champ1 en distinct, il faut passer par l'interface IEqualityComparer.
laCombo.ItemsSource = taListe.Distinct(new TUTUComparer());
//Code de l'interface IEqualityComparer:
public class TUTUComparer : IEqualityComparer<TUTU>
{
#region IEqualityComparer<TUTU> Members
public bool Equals(TUTU x, TUTU y)
{
//Ajoute tes comparaison ICI s'il y en d'autres...
return (x.champ1== y.champ1);
}
public int GetHashCode(TUTU obj)
{
return obj.champ1.GetHashCode();
}
#endregion
} |