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 :

Binding User Control


Sujet :

Windows Presentation Foundation

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Par défaut Binding User Control
    Bonjour,

    J'ai crée un UserControl pour représenter un objet métier.
    J'aimerais afficher une liste de ces objets mais je n'arrive pas à récupérer les propriétés de mon objet.

    Mon UserControl
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    <UserControl x:Class="ThreeSixty.SLAView.SimpleControl"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:toolkit="http://schemas.microsoft.com/wpf/2008/toolkit"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Height="150" Width="200">
        <Grid>
            <GroupBox Header="{Binding Path=name}">
            </GroupBox>
        </Grid>
    </UserControl>
    Ma Fenêtre XAML
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                <ListView x:Name="SLA_List" ItemsSource="{Binding}" >
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <myCtrl:SimpleControl  DataContext="{Binding Path=.}"/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
                </ListView>
    Ma Fenêtre CS
    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
     
    public List<SLA> mySLA = new List<SLA>();
     
    public Window1()
            {
                InitializeComponent();
                PowerBasedSLA nouveau = new PowerBasedSLA("Super SLA");
                mySLA.Add(nouveau);
                mySLA.Add(nouveau);
                mySLA.Add(nouveau);
                mySLA.Add(nouveau);
                mySLA.Add(nouveau);
                mySLA.Add(nouveau);
                mySLA.Add(nouveau);
                mySLA.Add(nouveau);
                SLA_List.DataContext = mySLA;
            }
    Résultat j'ai une liste de groupbox mais pas de nom en header...

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    214
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 214
    Par défaut
    Quand tu donnes un ItemTemplate dans un ItemsControl (genre ListBox, ListView...) le DataContext est automatiquement "hérité". En d'autres mots, tu n'as pas besoin de préciser le binding. Ce code devrait donc suffire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ListView x:Name="SLA_List" ItemsSource="{Binding}" >
                    <ListView.ItemTemplate>
                        <DataTemplate>
                            <myCtrl:SimpleControl/>
                        </DataTemplate>
                    </ListView.ItemTemplate>
    </ListView>

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Par défaut
    En effet même résultat !

    Mais le binding sur la propriété "name" de mon objet ne me donne toujours rien.
    Mon Header reste vide...

  4. #4
    Rédacteur
    Avatar de Thomas Lebrun
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    9 161
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Tu es sur que ta propriété s'appelle "name" ? Attention, c'est sensible à la casse...

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 40
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Par défaut
    Heu oui...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
     
        public abstract class SLA
        {
            public String name;

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    2 210
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 2 210
    Par défaut
    Salut,

    il faut que ce soit une propriété (donc implémentation d'un get/set) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public String name { get; set; }

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

Discussions similaires

  1. [WPF] User Control TreeView et binding MVVM
    Par ST4LKER dans le forum Développement Windows
    Réponses: 0
    Dernier message: 06/05/2015, 11h40
  2. Réponses: 0
    Dernier message: 02/05/2011, 17h37
  3. Problème Binding user control
    Par kite37 dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 28/09/2009, 18h26
  4. Binding dans user control
    Par baboutom dans le forum Windows Forms
    Réponses: 5
    Dernier message: 11/02/2009, 23h15
  5. [VB.NET] Provoquer le rechargement d'un user control..
    Par didoboy dans le forum ASP.NET
    Réponses: 7
    Dernier message: 30/04/2004, 14h17

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