在Windows Phone 7上自定义列表框中的特定项目

时间:2012-10-22 13:30:21

标签: windows-phone-7 xaml listbox

我正在使用具有自定义ItemTemplate样式的列表框。它基本上为列表框中的每个项目附加一个按钮。我想显示没有按钮的thge列表框中的最后一项。我怎么能完成它?

.xaml文件代码如下。

     <!-- ListBox to display recordings -->
        <ListBox Name="myListBox" Grid.Row="0"                     
                 HorizontalAlignment="Left" Width="470"
                 ScrollViewer.VerticalScrollBarVisibility="Visible"  
                 ScrollViewer.ManipulationMode="System"
                 SelectionChanged="OnMemosListBoxSelectionChanged">
            <ListBox.ItemTemplate>

                <DataTemplate>
                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="*" />
                        </Grid.ColumnDefinitions>

                        <Grid.RowDefinitions>
                            <RowDefinition Height="*" />
                            <RowDefinition Height="*" />
                        </Grid.RowDefinitions>

                        <Button Grid.Column="0"
                                Grid.Row="0"
                                Grid.RowSpan="3"
                                Padding="0"
                                HorizontalAlignment="Left"
                                VerticalAlignment="top"
                                Height="80"
                                Width="80"
                                Tag="{Binding BindsDirectlyToSource=True}"
                                Click="OnDeleteButtonClick">                                    
                            <Button.Content>
                                <Image Source="/images/delete.png" Margin="0" Width="50" Height="50" />
                            </Button.Content>
                        </Button>

                        <TextBlock Grid.Column="1" 
                                   FontSize="{StaticResource PhoneFontSizeMediumLarge}"
                                   Grid.Row="0"
                                   Text="{Binding fileName}"
                                   VerticalAlignment="Center"/>

                        <StackPanel Grid.Column="1" Margin="0,0,0,17"
                                    Grid.Row="1" Height="50" 
                                    Orientation="Horizontal"
                                    VerticalAlignment="Top">

                            <TextBlock FontSize="{StaticResource PhoneFontSizeNormal}" Text="Recorded on " />
                            <TextBlock FontSize="{StaticResource PhoneFontSizeNormal}" Text="{Binding crDate}" />
                            <TextBlock Text="   Duration " />
                            <TextBlock FontSize="{StaticResource PhoneFontSizeNormal}"  Text="{Binding duration}" />
                        </StackPanel>
                    </Grid>
                </DataTemplate>
            </ListBox.ItemTemplate>                
        </ListBox> 

2 个答案:

答案 0 :(得分:0)

添加一个属性,例如ShowButton到你的所有项目,为集合中的最后一项设置为false(对所有其他项都为true),然后在你的DataTemplate中仅在proprerty为真时显示按钮

答案 1 :(得分:0)

我不知道为什么列表的最后一项不需要那个按钮,但我建议您使用longlistselector的ListFooterTemplate。

使页脚项目独立。