2011-01-31 8 views
0

Je possède ce modèle de données mis en place pour une zone de liste:membre DynamicResource ne met pas à jour

<DataTemplate x:Key="SlideListItem"> 
    <StackPanel> 
     <Border Margin="1" BorderBrush="#505050" BorderThickness="1"> 
      <Border.Effect> 
       <DropShadowEffect ShadowDepth="1" BlurRadius="3" Opacity=".5" /> 
      </Border.Effect> 
      <Image Source="{Binding Thumbnail}" Stretch="Fill" VerticalAlignment="Center"/> 
     </Border> 
     <TextBlock Text="{Binding Title}" /> 
    </StackPanel> 
</DataTemplate> 

Il affiche une image et un texte en dessous. Voici la liste:

   <ListBox x:Name="PageList" Grid.Column="0" ItemsSource="{DynamicResource SlideList}" 
         ItemTemplate="{StaticResource SlideListItem}" MouseDown="PageList_MouseDown" SelectionChanged="PageList_SelectionChanged" /> 

SlideList est une ressource dynamique, plus exactement un ObservableCollection de ma propre classe. La classe est assez simple, n'a que quelques propriétés (certaines chaînes, une image et une liste)

Le problème est que la vignette doit être mise à jour toutes les quelques secondes, mais lorsque j'essaie de la mettre à jour depuis C#, elle ne Ne pas mettre à jour. La seule façon que j'ai trouvée pour afficher les mises à jour est de supprimer DynamicResource, puis de l'ajouter à nouveau.

+0

* Qu'avez-vous essayé * de mettre à jour à partir du code? –

Répondre

1

Modifiez-vous la propriété Vignette ou remplacez-vous l'élément de votre ObservableCollection?

Dans le premier cas votre classe simple doit implémenter INotifyPropertyChanged. Sinon, la cible de liaison ne sera mise à jour que lors du changement de la collection, par ex. remplacer un élément, ajouter de nouveaux éléments, etc., pas lors du changement d'un élément de la collection.

+0

Merci beaucoup, j'ai complètement oublié cela. Maintenant cela fonctionne :) – Tiberiu

+0

Pourriez-vous marquer cela comme réponse? J'aime un peu les points de réputation. :) –