Bienvenue à Blogs CodeS-SourceS Identification | Inscription | Aide

Thomas Lebrun

Tout sur WPF, LINQ, C# et .NET en général !

Actualités

[WPF] Comment, en XAML, se binder sur un élément situé à un index particulier d'une collection ?

Pour bien comprendre ce que je veux dire, regardez le code suivant:

public class Personne

{

    public int Id { get; set; }

 

    public string Nom { get; set; }

 

    public string Prenom { get; set; }

 

    public List<Personne> Collegues { get; set; }

}

 

public class PersonneCollection : ObservableCollection<Personne>

{

    public PersonneCollection()

    {

        this.Add(

            new Personne()

            {

                Id = 1, Nom = "LEBRUN", Prenom = "Thomas", Collegues = new List<Personne>()

                {

                    new Personne() { Id = 1, Nom = "GATES", Prenom = "Bill" },

                    new Personne() { Id = 1, Nom = "BALMER", Prenom = "Steeve" },

                    new Personne() { Id = 1, Nom = "OZZIE", Prenom = "Ray" }

                }

            });

    }

 

    public Personne Myself

    {

        get

        {

            return this[0];

        }

    }

}

Comme vous pouvez le voir, il n'y a rien d'extraordinaire: une classe Personne, associée à une classe définissant une collection de Personne et sur laquelle on définit une propriété permettant d'accéder à l'élément 0 de la collection.

Imaginons à présent que nous souhaitions accéder, en XAML, à l'élément situé en indice numéro 2 de la propriété Collegues, qui est une collection. Pour réaliser cela, il est nécessaire d'utiliser le code suivant:

<TextBox Text="{Binding Source={StaticResource obpPersonnes}, Path=Myself.Collegues[(sys:Int32)2].Nom}"

            HorizontalAlignment="Center"

            VerticalAlignment="Center" />

La partie importante à regarder est la syntaxe suivant:

Myself.Collegues[(sys:Int32)2].Nom

Il est en effet nécessaire de convertir en entier le paramètre passé pour l'indice du tableau car, par défaut, il s'agit d'une chaîne de caractères !

 

Bon développements à tous Smile

 

A+

 

PS: Dans l'exemple précédent, sys est le préfixe du namespace pointant sur System Wink

 

Ce post vous a plu ? Ajoutez le dans vos favoris pour ne pas perdre de temps à le retrouver le jour où vous en aurez besoin :
Posted: jeudi 28 août 2008 10:04 par Thomas LEBRUN
Classé sous : ,

Commentaires

Pas de commentaires

Les commentaires anonymes sont désactivés

Les 10 derniers blogs postés

- TechDays Paris 2012 : Session pleinière jour 3 par Blog Technique de Romelard Fabrice le il y a 21 heures et 25 minutes

- Mishra Reader : un lecteur RSS très Zune Style en Open Source ! par Cyril Sansus le il y a 23 heures et 59 minutes

- [framework 4] Les Tasks et le Thread UI par Fathi Bellahcene le 02-09-2012, 00:33

- Workflow Foundation 3 a un pied dans la tombe par Blog de Jérémy Jeanson le 02-08-2012, 22:15

- TechDays Paris 2012 : Nouvelles tendances du poste de travail - Bring Your own PC par Blog Technique de Romelard Fabrice le 02-08-2012, 19:42

- TechDays Paris 2012 : System Center Service Manager 2012 Vue d’ensemble par Blog Technique de Romelard Fabrice le 02-08-2012, 17:32

- TechDays Paris 2012 : Pleinière second jour par Blog Technique de Romelard Fabrice le 02-08-2012, 16:23

- TechDays Paris 2012 : Retour d'expérience sur la mise en place d'un Cloud Privé par Blog Technique de Romelard Fabrice le 02-08-2012, 16:04

- TechDays Paris 2012 : Comment SharePoint a sauvé mes TechDays par Blog Technique de Romelard Fabrice le 02-07-2012, 23:59

- Perspective 3.0 pour Silverlight 5.0 par Perspective le 02-07-2012, 22:39