我为列表框设置了此数据模板:
<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>
所以它正在显示一个图像,并在其下面显示一些文字。 这是列表框:
<ListBox x:Name="PageList" Grid.Column="0" ItemsSource="{DynamicResource SlideList}"
ItemTemplate="{StaticResource SlideListItem}" MouseDown="PageList_MouseDown" SelectionChanged="PageList_SelectionChanged" />
SlideList是一个动态资源,更确切地说是我自己的类的ObservableCollection。该类非常简单,只有很少的属性(一些字符串,一个图像和一个列表)
问题是Thumbnail需要每隔几秒更新一次,但是当我尝试从c#更新它时,它不会更新。我发现让它显示更新的唯一方法是删除DynamicResource,然后再添加它。
答案 0 :(得分:1)
您是在更改缩略图属性还是替换ObservableCollection中的项目?
在第一种情况下,您的简单类必须实现INotifyPropertyChanged。否则,只有在更改集合时才会更新绑定目标,例如替换项目,添加新项目等,而不是在更改集合中的项目时。