DynamicResource成员不会更新

时间:2011-01-31 19:14:09

标签: c# wpf xaml binding

我为列表框设置了此数据模板:

    <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,然后再添加它。

1 个答案:

答案 0 :(得分:1)

您是在更改缩略图属性还是替换ObservableCollection中的项目?

在第一种情况下,您的简单类必须实现INotifyPropertyChanged。否则,只有在更改集合时才会更新绑定目标,例如替换项目,添加新项目等,而不是在更改集合中的项目时。