Remplir une collection d'un objet avec une checkboxList [Résolu]

satsumy 14 Messages postés samedi 15 décembre 2007Date d'inscription 17 mars 2008 Dernière intervention - 11 févr. 2008 à 15:48 - Dernière réponse : satsumy 14 Messages postés samedi 15 décembre 2007Date d'inscription 17 mars 2008 Dernière intervention
- 17 mars 2008 à 16:28
Bonjour,

J'ai une classe "Mission" avec un id, date, heure... et une collection d'intervenants. Les Intervenants font partie d'une autre classe "Intervenant". 
Code de ma classe Mission :
public

class
Mission{

private
string num_ordre;

private
DateTime date;

private
string heure;

private
string observations;

private
List<
Intervenant> lesIntervenants;

}

Ensuite, j'ai une checkboxList qui se remplit avec  un sqlDatasource affichant le nom et prénom de l'intervenant.
Ma question : j'aimerai créer cette liste des intervenants pour la création de mon objet Mission. Tous les intervenants cochés devraient s'ajouter à ma liste d'intervenants.

Mon code :List

<MaClasse.Effectif> intervenants = newList<MaClasse.Effectif>();

for (
int i = 1; i < (cblIntervenants.Items.Count); i++){

if (cblIntervenants.Items[i].Selected){   intervenants.Add(

Convert.ChangeType(cblIntervenants.Items[i], MaClasse.
Intervenant));}}
MaClasse.

Mission laMission =
new MaClasse.
Mission(idMission, date, heure
,observations, intervenants);

Il me met un msg d'erreur disant que le type n'est pas valide!!!(Normal)

Merci de m'aider.
Afficher la suite 

3 réponses

Répondre au sujet
ecosmose 48 Messages postés vendredi 5 novembre 2004Date d'inscription 30 septembre 2010 Dernière intervention - 17 mars 2008 à 01:50
+3
Utile
Bonsoir,

2 situationjs sont possibles...

- Les intervenant sélectionnés sont déjà créées en tant qu'objet de la classe Intervenant et dans ce cas précis tu peux obtenir ces Objets dans la liste "intervenants"  grace à des identifiants ou autres informations unique contenue dans la checkboxlist...

-Soit le cas qui apparement nous concerne, les intervenants ne sont pas instancés (créés avec new) lorsque qu'ils sont dessinées dans la Chekboxlist, c'est à dire que les informations des intervenants qui sont affichées dans la chekboxlists ne proviennent des objets. Dans ce cas là je te conseillerais de créer ces intervenats avant de les ajouter à ta liste...car tu ne peux pas ajouter d'objet inexistant dans une liste (ca parait logique)...il faudrait donc que tu codes un constructuer Intervenant(Type1 Info1,Type 2 Info2...) ou les infos correspondantes aux données que tu connais au moment de leur séléction..

Essaye donc de comprendre ce code..

List<Intervenant
> intervenants = newList<Intervenant
>();

for (
int i = 1; i < (cblIntervenants.Items.Count); i++){
if (cblIntervenants.Items[i].Selected){

Intervenant IntervenatToAdd = new Intervenant(MonInfo1,MonInfo2,....);

   intervenants.Add(IntervenantToAdd);

}

Mission laMission =
new MaClasse.
Mission(idMission, date, heure
,observations, intervenants);

);}}
Ce code instancie un objet intervenant à chaque intervenant coché dans la cheklist, puis l'ajout est possible puisque la Classe T (ici la Classe  'intervenant')de cet Objet correspond à la List<T>  (la List

List<Intervenant
> intervenants )

BINOME de ECOSMOSE
Association ecologique d'actions de culture et d'Informations
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de ecosmose
satsumy 14 Messages postés samedi 15 décembre 2007Date d'inscription 17 mars 2008 Dernière intervention - 17 mars 2008 à 16:28
+3
Utile
Merci d'avoir répondu,

j'ai réussi à résoudre mon problème. Pour ceux que ca interesse voici ce que j'ai réussi a faire avec une solution similaire à ce que tu m'a conseillé :

List

<MaClasse.
Effectif> intervenants =
new
List<MaClasse.
Effectif>();

for (
int i = 0; i <= cblIntervenants.Items.Count - 1; i++){

if (cblIntervenants.Items[i].Selected){

MaClasse.

Effectif lIntervenant =
new MaClasse.
Effectif();lIntervenant.setIdEffectif(

Convert.ToInt16(cblIntervenants.Items[i].Value));
intervenants.Add(lIntervenant);

J'ai ensuite ajouté a ma mission et c'est tout ok !!

Merci
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de satsumy
satsumy 14 Messages postés samedi 15 décembre 2007Date d'inscription 17 mars 2008 Dernière intervention - 11 févr. 2008 à 15:52
0
Utile
Je me suis trompée au début, ma liste est :

List<Intervenant> intervenants = newList>();

et cblIntervenants est ma checkboxList.

Voila merci
Commenter la réponse de satsumy

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.