1

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

.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> 
4

2 回答 2

0

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

于 2012-10-22T14:38:39.847 回答
0

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

使页脚项目独立。

于 2012-10-23T01:37:50.627 回答