2011-02-05 2 views
1

J'ai besoin de savoir quel est le type de chaque élément dans CheckedListBox.Items? Est-ce ListViewItem, Object ou quoi?Quel est le type de chaque élément dans CheckedListBox.Items?

Je veux également savoir comment lier un DataTable à un CheckedListBox et définir chaque ID et texte d'éléments dans les formulaires de Windows?

+0

OK, SO CheckedListBox N'ont des propriétés comme DataSource, DisplayMember et ValueMember mais ils ne figure pas dans IntelliSense ..... – odiseh

Répondre

3

Le type dépend des objets que vous utilisez pour remplir la zone de liste activée. Vous pouvez utiliser un DataTable en utilisant le code suivant:

var table = new DataTable(); 

table.Columns.Add("ID"); 
table.Columns.Add("NAME"); 

table.Rows.Add("1", "John Doe"); 
table.Rows.Add("2", "Jane Doe"); 

this.checkedListBox1.DataSource = table; 
this.checkedListBox1.ValueMember = "ID"; 
this.checkedListBox1.DisplayMember = "NAME"; 

Dans ce cas, puisque vous remplissez la zone de liste vérifiée à l'aide d'un DataTable faire this.checkedListBox1.CheckedItems après avoir vérifié un ou plusieurs éléments affichera un ObjectCollection où chaque élément de la collection est une instance DataRowView.

Pour obtenir les éléments cochés que vous pourriez faire:

var checkedIds = new List<string>(); 

foreach (var item in this.checkedListBox1.CheckedItems) 
{ 
    var dataRowView = (DataRowView)item; 

    checkedIds.Add((string)dataRowView["ID"]); 
} 

Sur une note de côté, vous devriez vraiment améliorer votre taux d'acceptation.

+0

CheckedListBox n'a pas ces propriétés (DataSource, ValueMember et DisplayMember) – odiseh

+0

Avez-vous essayé d'exécuter le code au moins? Ils n'apparaissent pas dans Intellisense, mais le contrôle a ces propriétés. –

+0

Oh, je suis désolé. Tu as complètement raison. Merci mon ami – odiseh