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 :

Pb pour acceder à une collection en MVVM [Débutant]


Sujet :

C#

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut Pb pour acceder à une collection en MVVM
    Bonjour,

    J'ai une ObservableCollection dans un viewmodel (VM_Main) du style

    public ObservableCollection<Parametre> Parametres.

    Je voudrai savoir dans ma vue principale le nombre d'enregistrements

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
        public partial class Principal : Window
        {
            public Principal()
            {
                InitializeComponent();
                MessageBox.Show(VM_Main.Parametres.count.tostring());
            }
        }

    Comment acceder à ma collection à partir de ma vue principale ?

    Merci pour votre aide.

    Laurent

  2. #2
    Membre Expert
    Avatar de GuruuMeditation
    Homme Profil pro
    .Net Architect
    Inscrit en
    Octobre 2010
    Messages
    1 705
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : Belgique

    Informations professionnelles :
    Activité : .Net Architect
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2010
    Messages : 1 705
    Par défaut
    J'imagine que tu as bindé ta collection quelquepart (dans un itemsource d'une listview, par exemple). Tu peux alors avoir le count :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    listview.ItemsSource.Cast<Parametre>().Count()

    ou

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    (listview.ItemsSource as ObservableCollection<Parametre>).Count();

    Ou encore, si tu expose dans ta VM une propriété qui est le count de ta collection, tu peux la binder sur la propriété Tag de n'importe quel élément (Principal , par exemple), puis la récupérer.

    Ou bien encore créer une dependency property dans ta classe Principal et tu binde le count dessus.

    Perso je préfère les options binding, ça lie moins ta view à ton VM.

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Février 2006
    Messages
    101
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 101
    Par défaut
    Bonjour Olivier,

    J'ai choisi cette solution :

    tu expose dans ta VM une propriété qui est le count de ta collection, tu peux la binder sur la propriété Tag de n'importe quel élément (Principal , par exemple), puis la récupérer.

    Merci beaucoup pour ton aide , j'ai pu avancé

    Laurent

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

Discussions similaires

  1. [C#] Aide pour trier une collection
    Par erigoal dans le forum C#
    Réponses: 2
    Dernier message: 31/10/2008, 21h39
  2. Syntaxe pour acceder une image
    Par pierrot10 dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 12/07/2008, 14h13
  3. Réponses: 3
    Dernier message: 11/06/2008, 17h47
  4. GetProperty pour obtenir une collection à partir d'un COM
    Par laurent_diep dans le forum ASP.NET
    Réponses: 4
    Dernier message: 25/03/2008, 17h24
  5. Réponses: 5
    Dernier message: 17/07/2007, 14h26

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