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 d'un Button.Content via un converter


Sujet :

Silverlight

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut Binding d'un Button.Content via un converter
    Hello tout le monde

    Je bind le Content de mon bouton via un Converter.
    Lorsque mon converter ressemble à cela, ça fonctionne nickel:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
    
                return new Rectangle() { Height = 20, Width = 20, Stroke = new SolidColorBrush(Colors.Black) };
            }
    Maintenant, je souhaite récupérer mon rectange en ressource.

    Mon fichier generic.xaml contient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <Rectangle x:Key="fuckingButton" Width="20" Height="20" Stroke="Black">
    </Rectangle>
    Et mon converter ressemble maintenant à:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
    
                return (Rectangle)MyResourceDictionary["fuckingButton"];
            }
    Et là, j'obtiens l'erreur suivante:
    ExceptionObject {System.ArgumentException: Value does not fall within the expected range.
    En mode debug, j'obtiens bien mon rectangle avec
    (Rectangle)MyResourceDictionary["fuckingButton"]
    Je pige pas là

  2. #2
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ah mais il me semble que ca n'est pas possible. Un object graphique ne peut exister qu'une fois!

  3. #3
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    J'ai pas compris. Qu'est ce qui existe plusieurs fois?

  4. #4
    Rédacteur
    Avatar de Nathanael Marchand
    Homme Profil pro
    Expert .Net So@t
    Inscrit en
    Octobre 2008
    Messages
    3 615
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Expert .Net So@t
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2008
    Messages : 3 615
    Par défaut
    Ton rectangle. A l'époque je faisais ca pour les images et ca marchait pas. Comme le rectangle est un élément visuel, une même instance ne peut être affichée qu'une seule fois.

  5. #5
    Rédacteur
    Avatar de lutecefalco
    Profil pro
    zadzdzddzdzd
    Inscrit en
    Juillet 2005
    Messages
    5 052
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : zadzdzddzdzd

    Informations forums :
    Inscription : Juillet 2005
    Messages : 5 052
    Par défaut
    Citation Envoyé par Nathanael Marchand Voir le message
    Ton rectangle. A l'époque je faisais ca pour les images et ca marchait pas. Comme le rectangle est un élément visuel, une même instance ne peut être affichée qu'une seule fois.
    Bah je l'affiche qu'une fois dans mon bouton

  6. #6
    Expert confirmé
    Avatar de Skyounet
    Homme Profil pro
    Software Engineer
    Inscrit en
    Mars 2005
    Messages
    6 380
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Etats-Unis

    Informations professionnelles :
    Activité : Software Engineer
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Par défaut
    Enleve le de ton generic.xaml (qui est fait seulement pour contenir les styles des tes custom controls) et mets le dans App.xaml.

    Ensuite remplace ta ligne par : return App.Current.Resources["fuckingRectangle"];

Discussions similaires

  1. XAML Button Content Width
    Par Loenix dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 23/08/2013, 08h31
  2. Binding de UserControl.Content via un Converter
    Par lutecefalco dans le forum Silverlight
    Réponses: 8
    Dernier message: 30/08/2011, 17h19
  3. Binding de Button.Content dans un DataTemplate
    Par Invité dans le forum Windows Presentation Foundation
    Réponses: 5
    Dernier message: 22/06/2011, 18h12
  4. Stretch une grid dans un button.content !
    Par neoncyber dans le forum Silverlight
    Réponses: 2
    Dernier message: 14/03/2011, 21h34
  5. [C# 2.0] Mise à jour d'un DataGridView via le binding
    Par oodini dans le forum Windows Forms
    Réponses: 5
    Dernier message: 01/07/2006, 22h08

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