Traitée Appliquer des fonctions au binding

  • vendredi 11 mai 2012 16:17
     
     

    Bonjour,

    Dans mon application, j'utilise un Pivot que je remplis d'items grâce à des bindings.
    Cependant j'aimerai savoir si il est possible d'appliquer des fonctions quand on fait un binding.
    Du style

    Content="{Binding decoupe(Nom)}"

    Merci pour vos réponses

    Ludo

Toutes les réponses

  • vendredi 11 mai 2012 17:55
     
     Traitée A du code

    Bonjour,

    C'est tout à fait possible.

    Pour ça il suffit d'utiliser un converter : Lien MSDN

    En créant une classe qui hérite de IConverter, tu peux spécifier ta logique de conversion. Tu n'as plus qu'a la préciser comme ceci :

    Text="{Binding Path=StartDate, Converter={StaticResource dateConverter}}"

    Et la méthode Convert de ta classe converter sera appelé avec ta valeur en paramètre.

    N'hésite pas si je ne suis pas assez précis.

    Matthieu

  • dimanche 13 mai 2012 16:05
     
     Traitée A du code

    La solution des Matthieu est effectivement pratique si tu veux réutiliser la logique du converter.

    S'il s'agit d'une méthode business de ton ViewModel, tu peux simplement l'encapsuler via le getter d'une propriété :

    public string NomDecoupe
    {
         get { return Decoupe(this.Nom); }
    }

    Et pour modifier NomDecoupe à chaque modification de Nom :

    private string _nom;
    public string Nom 
    { get { return _nom; } }
    set 
    {
         _nom = value;
        OnPropertyChanged("Nom");
        OnPropertyChanged("NomDecoupe");
    }