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 :

Image Rafraichissement Binding


Sujet :

Silverlight

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Points : 46
    Points
    46
    Par défaut Image Rafraichissement Binding
    Bonjour,

    J'ai une Image qui est bindé avec une propriété (string chemin vers l'image).

    Lorsque que la propriété change l'image devrait changer elle aussi mais cela ne fonctionne pas. J'implémente bien INotifyPropertyChange.

    Comment peut-on "rafraichir" l'image ?

    Merci

  2. #2
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,

    un peu de code ?

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

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 6 380
    Points : 13 380
    Points
    13 380
    Par défaut
    Je viens d'essayer et y'a po de soucis.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <Image Source="{Binding Source}" />
    Et une classe qui implémente INotifyPropertyChanged et qui lance l'évènement sur le set de la propriété Source de type string.

    Testé avec des images locales et des images distantes (Flickr).
    Introduction à Silverlight 4 (new) ; Localisation d'une application Silverlight (new) ;
    Mon espace perso[/B]

    La connaissance s’acquiert par l’expérience, tout le reste n’est que de l’information. Albert Einstein[/SIZE]

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Points : 46
    Points
    46
    Par défaut
    Voici un peu de code :
    le XAML :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    <mycontrols:SilverlightTreeView ItemsSource="{Binding MyUserVM.MyElements}" BorderThickness="0" VerticalAlignment="Stretch" ScrollViewer.VerticalScrollBarVisibility="Auto" ScrollViewer.HorizontalScrollBarVisibility="Auto" Margin="-6" Height="Auto" Width="Auto">
                            <mycontrols:SilverlightTreeView.ItemTemplate>
                                <hdt:HierarchicalDataTemplate ItemsSource="{Binding Children}">
                                    <Grid HorizontalAlignment="Stretch">
                                        <StackPanel VerticalAlignment="Top" Orientation="Horizontal" HorizontalAlignment="Left">
                                            <Image Height="16" Margin="0,0,5,0" Source="{Binding CurrentFileImage}" Stretch="Fill"/>
                                            <TextBlock Text="{Binding Name}" Margin="0,0,25,0" TextWrapping="Wrap" VerticalAlignment="Center" HorizontalAlignment="Center"/>
                                            <Button>
                                                <Button.Template>
                                                    <ControlTemplate>
                                                        <Image Height="16" Source="{Binding CurrentFireImage}" Stretch="Fill"/>
                                                    </ControlTemplate>
                                                </Button.Template>
                                            </Button>
                                        </StackPanel>
                                    </Grid>
                                </hdt:HierarchicalDataTemplate>
                            </mycontrols:SilverlightTreeView.ItemTemplate>
                        </mycontrols:SilverlightTreeView>
    le code behind :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
            private bool _isSelected;
     
            public bool IsSelected
            {
                get { return _isSelected; }
                set
                {
                    _isSelected = value;
                    CurrentFireImage = getFireImage(TypeOfElement, IsEnable, IsSelected);
                    RaisePropertyChanged("IsSelected");
                }
            }
     
    private string _currentFireImage;
     
            public string CurrentFireImage
            {
                get { return _currentFireImage; }
                set
                {
                    _currentFireImage = value;
                    RaisePropertyChanged("CurrentFireImage");
                }
            }
    Une idée d'ou le problème peut venir ?

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    66
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Mars 2005
    Messages : 66
    Points : 46
    Points
    46
    Par défaut
    Je viens de tester en créant un nouveau projet et en effet cela fonctionne sans problème.

    La raison est que mon eventHandler valait null et donc qu'aucun évènement n'était remonté.

    Le pourquoi mon eventhandler était null est simple :
    Mes classes ViewModel héritent de ViewModelBase qui implémente INotifyPropetyChange.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
        public class ViewModelBase
        {
            #region INotifyPropertyChanged values
     
            public event PropertyChangedEventHandler PropertyChanged;
     
            protected void RaisePropertyChanged(string propertyName)
            {
                var handler = PropertyChanged;
                if (handler != null)
                {
                    handler(this, new PropertyChangedEventArgs(propertyName));
                }
            }
            #endregion
     
        }
    et oui il manque :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    public class ViewModelBase : INotifyPropertyChanged

    Voila comment perdre 1 journée pour rien

    Si vous aussi vous voulez perdre votre temps contactez moi par mp j'ai LA solution

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

Discussions similaires

  1. [Image]Rafraîchissement d'une image
    Par Zen_Fou dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 15/05/2006, 18h33
  2. [Socket] Rafraichissement lent de l'image
    Par keil dans le forum Multimédia
    Réponses: 9
    Dernier message: 26/10/2005, 15h01
  3. Réponses: 2
    Dernier message: 04/02/2004, 22h32
  4. [MFC] probleme de rafraichissement d'une image
    Par Vestaproman dans le forum MFC
    Réponses: 6
    Dernier message: 09/01/2004, 23h59
  5. Une ProgressBar pour un rafraichissement d'image
    Par JakeGrafton dans le forum Composants VCL
    Réponses: 8
    Dernier message: 06/01/2004, 22h21

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