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

Silverlight Discussion :

Binding de données sans MVVM


Sujet :

Silverlight

  1. #1
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut Binding de données sans MVVM
    Bonjour

    je fait une petite appli silverlight dans le but de l'intégrer à sharepoint 2010. J'utilise donc la V4.

    J'ai créé une application Silverlight sous VS (et blend) et j'ai mis le design de ma page dans ma mainPage.xaml. Le but pour moi est maintenant de mettre mes données correctement via ma mainPage.xaml.cs. Jusque là tout va bien.

    Mon soucis est que quand je veux lier mes données à ma vue, je n'arrive pas à afficher mes champs. Côté IHM j'ai:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    <ItemsControl x:Name="Repeater">
    <ItemsControl.ItemTemplate>
    <DataTemplate>
    <sdk:Label x:Name="Nom" Content="{Binding nom}"  />
    </DataTemplate>	
    </ItemsControl.ItemTemplate>
    </ItemsControl>
    côté CS j'ai :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     public class personne
            {
                public string nom;
                public string prenom;
            }
     
    List<personne> maListe= new List<personne>();
    là je rempli ma liste et elle est ok, puis:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Repeater.ItemsSource = maListe;
    Voilà où est mon soucis.. le nom des personnes ne s'affiche pas, pourtant niveau design si je met ma réponse dans un case, j'ai bien le nombre de case correspondante, donc le bon nombre de personne.. c'est juste l'affichage de ce nom qui ne va pas..

    j'ai déjà fait des applis silverlight avec mvvm light toolkit, un locator, un viewModel.. mais là l'appli tien sur une page, est vraiment petite, et je ne vois pas l'intérêt d'en faire tant pour au final si peut.. ma solution est elle réalisable ?

    ps: je n'ai pas mis de datacontext, mais si il en faut un je ne sais pas quoi mettre ..

  2. #2
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Bonjour,

    Tu devrais mettre une ObservableCollection plutot qu'une List pour ta collection de classe Personne sinon le Binding ne risque pas d'en détecter les changements

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    je viens d'essayer mais malheureusement ça ne change rien ..
    je pense que ça doit être lié au context mais je ne sais pas du tout quoi mettre ..

  4. #4
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Tu peux rajouter le code du moment ou tu rajoutes les personnes (dans le load, dans le constructeur? )

  5. #5
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    dans mon construcuteur j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    public MainPage()
    		{
                InitializeComponent();
                rafraichir();}
    et ma méthode rafraichir contient le code présenté plus haut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public void rafraichir()

  6. #6
    Membre Expert
    Avatar de Samuel Blanchard
    Homme Profil pro
    Expert .NET
    Inscrit en
    Février 2010
    Messages
    1 504
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France

    Informations professionnelles :
    Activité : Expert .NET

    Informations forums :
    Inscription : Février 2010
    Messages : 1 504
    Par défaut
    Désolé je n'avais pas bien lu l'intitlué de ta question .

    On ne peut pas Binder sur des champs, seulement sur des Propriétés.

  7. #7
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    mais je binde mon contenu sur la propriété content d'un label pourtant dans ma vue. Comment dois je faire pour résoudre ce problème?

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    dans ce tuto
    http://broux.developpez.com/articles...g-silverlight/
    j'ai suivi le process du chapitre 2-4. On vois bien que cela marche avec un type List<> et du binding sur les champs correspondant.. après il est vrai que je n'ai pas surchargé INotifyPropertyChanged de ma classe personne mais je ne suis pas sûr que ce soit ça qui pose problème..

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

    Informations forums :
    Inscription : Octobre 2002
    Messages : 9 161
    Par défaut
    Citation Envoyé par johnaliashead Voir le message
    et du binding sur les champs correspondant..
    Non, dans le tuto, il se binde bien sur les propriétés, et pas les champs. Donc comme on te l'a indiqué, il te faut utiliser des propriétés.

  10. #10
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    oui en effet j'ai modifié la définition de ma classe tel qu'il était indiqué (en surchargeant INotifyPropertyChanged et en définissant bien les getter et setter) et là à première vue ça marche

    je vérifie plus en détail si tout se passe bien et je valide les réponses ! merci beaucoup !!

  11. #11
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2010
    Messages
    199
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pas de Calais (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Mars 2010
    Messages : 199
    Par défaut
    c'est bon c'est vérifié et ça marche très bien . merci encore

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

Discussions similaires

  1. Comment attacher une base de données sans son fichier log
    Par callo dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 05/06/2014, 11h03
  2. Réponses: 9
    Dernier message: 10/11/2005, 23h31
  3. [Modèle Relationnel] Une base de données sans liens ni triggers
    Par Promeneur dans le forum Schéma
    Réponses: 15
    Dernier message: 27/05/2005, 10h35
  4. Développer une base de données sans BDE dans DELPHI 3 PRO
    Par ndlh721 dans le forum Bases de données
    Réponses: 3
    Dernier message: 05/02/2005, 14h21
  5. base de donné sans avoir un serveur!!
    Par Sawbo dans le forum Bases de données
    Réponses: 7
    Dernier message: 30/07/2004, 09h08

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