Шаблон ListBox, скрывающие элементы - PullRequest
1 голос
/ 21 марта 2011

У меня есть шаблон списка, показывающий изображение и три текстовых поля.Вы увидите, как они распределяются в коде ниже.Моя проблема в том, что некоторые элементы не будут иметь изображения, и я хочу, чтобы текст в этом случае занимал всю строку.Я пытался не использовать сетку, чтобы использовать холст, но я не знаю, почему при использовании холста внутри списка ничего не отображается.Я не знаю, легко ли это сделать.Вот код:

<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 Ответ

1 голос
/ 21 марта 2011

Есть несколько способов связать это вместе.

Один из способов:

  • добавить немного отступов к границе
  • привязывает видимость границы к свойству миниатюры, используя соответствующий ValueConverter
  • изменить ширину столбца 0 с "60" на "Авто" - тогда оно исчезнет, ​​когда изображение свернуто.
...