ListBox模板,隐藏元素

时间:2011-03-21 15:14:11

标签: xaml windows-phone-7 datatemplate

我有一个列表框模板,显示图像和三个文本框。您将看到它们如何在下面的代码中分发。我的问题是有些项目没有图像,我希望文本在这种情况下填满整行。 我已经尝试不使用网格,使用画布,但我不知道为什么,当在列表框中使用画布时,没有显示任何内容。我不知道这是否容易实现。这是代码:

<ListBox Grid.Column="0" Grid.Row="1" Background="White" HorizontalAlignment="Stretch" Name="itemList" VerticalContentAlignment="Stretch" SelectionChanged="listBoxSetmana_SelectionChanged">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <Grid HorizontalAlignment="Stretch" VerticalAlignment="Stretch" MinWidth="480">
                <Grid.RowDefinitions>
                    <RowDefinition Height="28" />
                    <RowDefinition Height="17" />
                    <RowDefinition Height="50" />
                </Grid.RowDefinitions>
                <Grid.ColumnDefinitions>
                     <ColumnDefinition Width="60" />
                     <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>

                <Border HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Grid.RowSpan="3" Grid.Column="0" Grid.Row="0" BorderThickness="1" BorderBrush="#FFFF003F" Padding="1">
                    <Image HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Name="listImage" Width="36" Height="36" Source="{Binding thumbnail}" />
                </Border>
                <TextBlock Padding="0 0 25 0" Grid.Column="1" Grid.Row="0" Name="title" Foreground="Black" Text="{Binding title}" FontWeight="Bold" FontSize="20" />
                <TextBlock Padding="0 0 25 0" Grid.Column="1" Grid.Row="1" Name="published" Foreground="Black" Text="{Binding published}" FontSize="13" />
                <TextBlock Padding="0 0 25 0" Grid.Column="1" Grid.Row="2" Name="subtitle" Foreground="Black" Text="{Binding subtitle}" FontSize="16" TextWrapping="Wrap" />
                <TextBlock Visibility="Collapsed" Text="{Binding id}" />
            </Grid>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

谢谢!

1 个答案:

答案 0 :(得分:1)

有几种方法可以将它们绑定在一起。

一种方法是:

  • 向边框添加一些填充
  • 使用适当的ValueConverter
  • 将边框的可见性绑定到缩略图属性
  • 将第0列的宽度从“60”更改为“自动” - 然后在图像折叠时它将消失。