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

C# Discussion :

[WPF / XAML] Passage de paramètre entre fenêtres / UserControls


Sujet :

C#

  1. #1
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut [WPF / XAML] Passage de paramètre entre fenêtres / UserControls
    Bonjour,

    Je ne sais pas si je suis au bon endroit.. Je n'ai pas trouvé de forum dédié.

    Voici mon soucis: J'ai une fenêtre qui en apelle une autre dans laquelle il y a un userControl.
    J'aimerais faire descendre une variable et en faire remonter une autre (lors du click), je suis un peu perdu.

    Ma fenêtre principale (je suis dans 'luserControl de ma fenêtre principale, mais ça n'a pas d'importance) qui apelle la fenêtre enfant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    winUserAdd f = new winUserAdd((tblUser)e.Parameter);
    Ma fenêtre enfant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        public partial class winUserAdd : Window {
            private tblUser leUsr = null;
     
            public winUserAdd(tblUser pUsr=null) {
                ucUsr.myUsr = leUsr;
                InitializeComponent();
            }
        }
    Et coté Xaml:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
        <Grid>
            <UserControls:ucUserAdd x:Name="ucUsr"/>
        </Grid>
    Et mon userControl enfant:
    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
        public partial class ucUserAdd : ucTemplate {
     
            public static readonly DependencyProperty UserProperty = DependencyProperty.Register("myUsr", typeof(tblUser), typeof(ucUserAdd), new PropertyMetadata(null));
     
            public tblUser myUsr {
                get { return (tblUser)GetValue(UserProperty); }
                set { SetValue(UserProperty, value); }
            }
     
            public ucUserAdd() {
                InitializeComponent();
     
                if (myUsr != null) {
                    txtUsrMail.Text = myUsr.email;
                    txtUsrNom.Text = myUsr.lastName;
                    txtUsrPrenom.Text = myUsr.firstName;
                    cbLang.SelectedValue = myUsr.lang;
                }
            }
        }
    Mais ça ne marche pas, rien n'est appelé dans le bon ordre.

  2. #2
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    initializecomponent est à appeler en 1er je pense

    sinon en mvvm avec du binding on a pas besoin de usercontrol je pense

    en plus vu que tu as une propriété user, il serait plus logique que dans le set tu t'occupes de tester ce qu'il vaut plutot que ne le faire qu'une fois dans le constructeur

  3. #3
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Bonjour Pol,

    Je ne comprends pas trop le fait de tester dans le set.

    Sinon, j'ai pu voir que c'est lorsque la fenêtre enfant apele l'UC que je perds l'info.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        <Grid>
            <UserControls:ucUserAdd x:Name="ucUsr" />
        </Grid>
            public winUserAdd(tblUser pUsr=null) { //
                InitializeComponent();
                leUsr = pUsr;
                ucUsr.myUsr = leUsr;
            }
    En fait, le Usercontrol est chargé lors du initializecomponent(). donc la variable n'est pas encore affectée.

    Peux tu me donner plus de détails sur la bonne façon de faire, car je ne vois pas comment remplacer mes usercontrols.

    Merci d'avance.

  4. #4
    Expert éminent sénior Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 177
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 177
    Points : 25 125
    Points
    25 125
    Par défaut
    j'ai cité mvvm et binding
    avec en plus datatemplate tu as tout ce qu'il faut (à chercher ^^) pour te passer de usercontrol

  5. #5
    Membre averti Avatar de dacid
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    1 064
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 1 064
    Points : 420
    Points
    420
    Par défaut
    Bonjour Pol,

    Bon, j'ai approfondi en suivant ce tutoriel:
    http://www.dotnetcurry.com/wpf/1037/...view-viewmodel

    C'est complet et détaillé. Impec pour moi.

    J'ai répondu à certaines de mes questions, mais du coup, je m'en suis créé de nouvelles.
    Je crée un autre post car le contexte change.

    Merci encore @ toi.

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

Discussions similaires

  1. Passage de paramètres entre UserControls
    Par yuriyan dans le forum Silverlight
    Réponses: 3
    Dernier message: 08/07/2011, 10h15
  2. Passage de paramètres entre 2 fenêtres
    Par Maylou dans le forum Interfaces Graphiques en Java
    Réponses: 4
    Dernier message: 28/03/2011, 13h02
  3. Passage de paramètres entre deux fenêtres
    Par mosaique dans le forum WinDev
    Réponses: 8
    Dernier message: 21/01/2010, 00h28
  4. Réponses: 5
    Dernier message: 23/01/2009, 16h22
  5. Réponses: 5
    Dernier message: 17/12/2007, 12h07

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