WP7使用绑定如何管理与先前项目相关的数据

时间:2011-08-22 05:28:36

标签: data-binding windows-phone-7 listbox

当我使用列表框绑定到集合时,我是否可以根据集合中显示的先前项目来管理输出。

例如,在以下绑定中

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <ListBox x:Name="AgendaListbox"
                     ItemsSource="{Binding AgendaItems2}"
                     ItemTemplate="{StaticResource EventDisplay3}"/>
</Grid>

模板如下所示

<DataTemplate x:Key="EventDisplay3">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition/>
            <RowDefinition Height="50"/>
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition/>
            <ColumnDefinition Width="10"/>
            <ColumnDefinition/>
        </Grid.ColumnDefinitions>
        <TextBlock Text="{Binding DateTimeDayString}" Style="{StaticResource PhoneTextSmallStyle}"
                   Grid.Row="0" Grid.Column="0"/>

        <TextBlock Text="{Binding DisplayTimeString}" Foreground="{Binding DisplayColor}"
                   Grid.Row="1" Grid.Column="0" Style="{StaticResource PhoneTextLargeStyle}"/>
        <TextBlock Text="{Binding Details}" TextWrapping="Wrap" Style="{StaticResource PhoneTextNormalStyle}" 
                   Grid.Row="0" FontSize="30" Grid.Column="2" Grid.RowSpan="3" 
                    VerticalAlignment="Center" />
        <TextBlock Text="{Binding Location}" Style="{StaticResource PhoneTextSmallStyle}"
                   Grid.Row="3" Grid.Column="0"/>
    </Grid>
</DataTemplate>

如果我想根据显示的上一个项目改变显示(例如,如果我想删除DateTimeString Binding,如果它与前一个相同)有一种方法,我可以做到这一点,而无需具体当我建立收藏家时,允许它。

因为当列表框被绑定到该集合时会自动发生这么多事情,所以我没有看到任何其他方式,因为正在构建集合时我没有处理它......因为之后我几乎无法控制。

由于

1 个答案:

答案 0 :(得分:0)

  

有什么办法可以根据集合中显示的先前项目来管理输出?

构建集合时必须进行此类更改。考虑使用DataTemplateSelector是否有任何帮助。