2010-10-01 5 views
1

Besoin de connaître le type d'un élément dans un listBox, que ce soit le type bouton ou bouton radio ou chaîne simple.Comment vérifier un type d'élément dans ListBox

Quelque chose se trouvent l'extrait ci-dessous:

foreach (ListBoxItem _item in listPhotoAlbum.ItemsSource) 
        { 
         if _item is of type of button 
          //DO this 
         else if _item is typeof RadioButton 
          //Do that 
        } 

Répondre

3

Que diriez-vous ceci:

foreach (var _item in listPhotoAlbum.Items) 
{ 
    var radioButton = _item as RadioButton; 

    if (radioButton != null) 
    { 
     //Do with radioButton 
     continue; 
    } 

    var button = _item as Button; 

    if (button != null) 
    { 
     //Do with button 
     continue; 
    } 
} 
5

Il suffit de faire:

if(item is Button) 
{ 
    // Do something 
} 
else if(item is RadioButton) 
{ 
    // Do something 
} 
1

Il suffit d'utiliser is?

foreach (ListBoxItem _item in listPhotoAlbum.ItemsSource) 
{ 
    if _item is Button 
     //DO this 
    else if _item is RadioButton 
     //Do that 
} 
3

Si vous voulez juste vérifier le type utiliser le mot-clé est comme les autres questions suggèrent.

Si vous souhaitez réellement utiliser l'élément comme type, il est souvent préférable d'utiliser le mot-clé en tant que. Cela fait la vérification, mais vous donne l'élément réel après la distribution pour l'utilisation, et permettra d'éviter les avertissements fxcop que vous recevrez si vous utilisez est puis comme.

foreach (ListBoxItem _item in listPhotoAlbum.ItemsSource) 
{ 
    Button b = _item as Button; 
    if (b != null) { // DO this } 

    RadioButton rb = _item as RadioButton; 
    if (rb != null) { // DO that } 
} 

Si par exemple vous vouliez connaître le type, peu importe ce qui est (plutôt que de limiter à certains contrôles), vous pouvez alors utiliser le GetType() méthode.

foreach (ListBoxItem _item in listPhotoAlbum.ItemsSource) 
{ 
    Type t = _item.GetType(); 
} 
Questions connexes