Bonjour j'ai un petit souci de compréhension dans le Binding d'in CheckedListBox

Si j'emploie une methode de binding direct par assignation d'une datasource, cela semble fonctionner tres bien. Mais cela me pose deux problèmes :
1- En aucun cas je ne souhaite que la datasource originale soit affectée
2- J'ai lu que cete methode avait un bug

Donc j'utilise une methode manuelle pour ajouter mes items qui sont les rows d'une datatable contenant deux eléments ID et Valeur

Mais avec cette methode, le CheckedListBox m'affiche des

Une idée de mon erreur ?
Voici le code

Merci de votre aide

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
      chklbDistribution.DisplayMember = "Value";
      chklbDistribution.ValueMember = "ID";
 
//   Methode d'ajout manuel
      SetClBoxDataSource(chklbDistribution, sCodes.dtModeCom);
 
//      Methode directe
//      chklbDistribution.DataSource = sCodes.dtModeCom;
 
 
    }
    // *********************************************************************************
    private void SetClBoxDataSource(CheckedListBox clb, DataTable dt)
    {
      clb.Items.Clear();
 
      int i;
      for (i = 0; i < dt.Rows.Count - 1; i++)
      {
        clb.Items.Add(dt.Rows[i]);
      }
    }
    // *********************************************************************************