Question sur : Combobox SelectedValue
Vs2010 beta framework 3.5
Niveau : Débutant.
Bonjour à tous
je test actuellement divers composants et je me trouve confronté a un phénomène inexplicable :zoubi:
contexte : une form, 2 combos 'liées'
Utilisation : l'utilisateur selectionne dans la 1er combo les editeur, la 2nd se remplit des publication suite au choix dans la 1er (rien d extraordinaire)
Au démarrage j'alimente ma première Combo via un dataset.
Code:
1 2 3 4 5 6 7 8 9
|
public Form1()
{
InitializeComponent();
DataSet ds = bll.SelectEditeur();
cbx.DataSource = ds.Tables[0];
cbx.DisplayMember = "Nom";
cbx.ValueMember = "Id";
} |
Sur l'event cbx_SelectedIndexChanged
je recupere la value de la 1er combo comme paramètre pour la seconde requete et je remplis ma seconde combo via le resultat dans le second Dataset.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
|
private void cbx_SelectedIndexChanged(object sender, EventArgs e)
{
int index;
System.Type t = cbx.SelectedValue.GetType();
if (t.Name.ToString() == "Int32")
{
index = int.Parse(cbx.SelectedValue.ToString());
}
else
{
DataRowView SelectedRow = (DataRowView)cbx.SelectedValue;
index = int.Parse(SelectedRow[0].ToString());
}
DataSet ds = bll.SelectPublication(index);
cb2.DataSource = ds.Tables[0];
cb2.DisplayMember = "Titre";
cb2.ValueMember = "Id";
} |
Probleme : lors du lancement qd je recupere le selectedValue il est bien sous la forme d'un Datarowview, jusque la normal, mais a la premiere selection d'un Editeur le selectedvalue est de Type Int32 d'ou mon :
Code:
1 2 3 4 5 6
|
System.Type t = cbx.SelectedValue.GetType();
if (t.Name.ToString() == "Int32")
{
// Traitement
} |
Alors effectivement ca fonctionne,mais pourquoi a l'initialisation il est de type Datarowview, et prq change t-il en Int32 d'un coup ?
Autre remarque cette façon de coder me parait, comment dire, pas trés pro, pas trés propre que me conseillez vous ?
Merci