IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Presentation Foundation Discussion :

récupération de userControl dynamique


Sujet :

Windows Presentation Foundation

  1. #1
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Points : 40
    Points
    40
    Par défaut récupération de userControl dynamique
    Bonjour,

    j'ai un petit souci sur la récupération de userControls créés dynamiquement.

    J'ai un userControl global : filterUserControl qui regroupe des userControls qui sont appelés dynamiquement (en fonction du type de variable).

    J'ai le userControl CaseSearch, StringSearch, EntierSearch, DoubleSearch et ListeSearch.

    Pour récupérer le libellé un userControl de type String par exemple j'effectue de la manière suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     foreach (var userControl in filterUserControl.Children)
                {
                    var libelle = ((Adn.Library.UserControls.AdvancedSearch.StrimgSearchControl)(userControl)).libelle.Text;
                }
    J'aimerais construire la ligne var libelle = ((Adn.Library.UserControls.AdvancedSearch.StrimgSearchControl)(userControl)).libelle.Text; de manière dynamique et automatique j'aimerais faire un truc de ce genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    foreach (var userControl in filterUserControl.Children)
                {
                    string typeUserControl = userControl.GetType().Name;
                    var libelletest = Type.GetType("Adn.Library.UserControls.AdvancedSearch." + typeUserControl)(userControl).libelle.Text;
                    var test = (libelletest)(userControl).libelle.Text;
                }
    Si quelqu'un a une idée de comment faire je suis preneur.

    Bien cordialement,

    Minim0i

  2. #2
    Modérateur
    Avatar de DotNetMatt
    Homme Profil pro
    CTO
    Inscrit en
    Février 2010
    Messages
    3 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : CTO
    Secteur : Finance

    Informations forums :
    Inscription : Février 2010
    Messages : 3 611
    Points : 9 743
    Points
    9 743
    Billets dans le blog
    3
    Par défaut
    Tu peux utiliser une interface ou une classe abstraite, ou encore une classe de base. Ensuite lorsque tu veux récupérer libelle.Text tu castes ton userControl en type de base.
    Less Is More
    Pensez à utiliser les boutons , et les balises code
    Desole pour l'absence d'accents, clavier US oblige
    Celui qui pense qu'un professionnel coute cher n'a aucune idee de ce que peut lui couter un incompetent.

  3. #3
    Membre du Club
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2010
    Messages
    45
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2010
    Messages : 45
    Points : 40
    Points
    40
    Par défaut
    Merci bien , j'ai choisi l'option de l'interface

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
        public interface IObjetFinalDef
        {
            string Libelle { get; }
            string Option { get; }
            string Valeur { get; }
        }
    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
    24
     
    private void Button_Click_1(object sender, RoutedEventArgs e)
            {
                // Création de l'objet final de recherche
                List<AdvancedSearchDefinitionFinal> searchFinal = new List <AdvancedSearchDefinitionFinal>();
                foreach (var userControl in filterUserControl.Children)
                {              
                    var libelle = ((IObjetFinalDef)userControl).Libelle;
                    if (libelle != string.Empty)
                    {
                        searchFinal.Add(new AdvancedSearchDefinitionFinal
                        {
                            Table = LstDef.Where(A => A.Libelle == libelle).Select(A => A.Table).First(),
                            Type = LstDef.Where(A => A.Libelle == libelle).Select(A => A.TypeSaisie).First(),
                            Champs = LstDef.Where(A => A.Libelle == libelle).Select(A => A.Champ).First(),
                            IDLST = LstDef.Where(A => A.Libelle == libelle).Select(A => A.IDTYPLST).First(),
                            Valeur = ((IObjetFinalDef)userControl).Valeur,
                            Option = ((IObjetFinalDef)userControl).Option
                        });
                    }
                    search(searchFinal);
                }
            }
    }
    Bonne journée.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 17/07/2008, 12h29
  2. Récupération valeur datagrid dynamique
    Par fanfan49 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 07/08/2007, 12h00
  3. Réponses: 1
    Dernier message: 01/05/2007, 14h59
  4. [C# 2.0] encore un problème de usercontrol dynamique!
    Par gdkenny dans le forum ASP.NET
    Réponses: 8
    Dernier message: 11/10/2006, 14h50
  5. Récupération de variables dynamiques complexes
    Par ludoboy dans le forum ASP
    Réponses: 7
    Dernier message: 24/05/2004, 17h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo