2013-06-02 4 views
0

Quand je charge et remplir mon ListBox, je vérifie si une valeur est booltrue ou false, et selon que bool je veux lier l'image actuelle (liked.png ou notliked.png).ImageSource lorsque le bouton cliqué

bouton dans Listbox:

<Button Click="LikePost"> 
    <Button.Background> 
     <ImageBrush Stretch="Uniform" ImageSource="{Binding imagesource}"/> 
    </Button.Background> 
</Button> 
<Image Source="liked.png" Visibility="collapsed"/> 
<Image Source="notliked.png" Visibility="collapsed"/> 

(uniquement lorsque ces deux dernières lignes sont là, les images montrent ???)

J'ai la classe suivante attribuée à la zone de liste:

public class Item : INotifyPropertyChanged 
{ 
    public string value1 { get; set; } 

    public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged; 
    private System.Windows.Media.ImageSource _imagesource; 
    public System.Windows.Media.ImageSource imagesource 
    { 
     get { return _imagesource; } 
     set 
     { 
      if (_imagesource == value) return; 
      _imagesource = value; 
      NotifyLikeImageChanged("like"); 
     } 
    } 
    private void NotifyLikeImageChanged(string propertyName) 
    { 
     System.ComponentModel.PropertyChangedEventHandler handler = PropertyChanged; 
     if (PropertyChanged != null) 
      PropertyChanged(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName)); 
    } 
} 

Dans mes fonctions LikePost, je vérifie si le post est aimé ou non et change la source d'images de ma classe en conséquence. Mais l'image ne changera pas?

+0

Avez-vous accès à ce fichier? et pourquoi 'Absolute' et pas 'RelativeOrAbsolute' – Ofiris

+0

Les fichiers sont dans ma racine. Quand j'utilise "Absolute", j'obtiens "System.UriFormatException". –

+0

'UriKind.RelativeOrAbsolute' – Ofiris

Répondre

0

Vous pouvez essayer ceci.

Si votre application Silverlight se trouve sous le dossier/ClientBin, l'URL doit être relative à ClientBin. Donc, si votre image se trouve directement sous votre application web, vous pouvez essayer le nouvel Uri ("../ path.png", UriKind.Relative).

Vous pouvez également utiliser les outils de développement fiddler ou chrome (onglet Réseau) pour capturer votre demande d'image, ce qui vous montrera l'URL que vous demandez.

Questions connexes