Добавление метки перед моим текстовым блоком - PullRequest
1 голос
/ 01 мая 2011

У меня есть список, который получает данные из веб-службы, но для данных требуется метка или другой текстовый блок, чтобы сказать, что это за данные.Есть ли способ вставить это в этот список?

, поэтому мой желаемый результат будет

"HIN Number:" - затем отобразите текстовый блок, который привязан к HINNumber

«Category Letter:» - затем отобразите текстовый блок, который связан с categoryLetter

«Category 1:» - затем отобразите текстовый блок, который связан с category1

«Category 2:» - затем отобразитетекстовый блок, который связан с категорией 2

«Категория 3:» - затем отобразите текстовый блок, который связан с категорией 3

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

        <ListBox x:Name="HINList" Margin="0,300,-12,0" ItemsSource="{Binding Details}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Margin="0,0,0,17" Width="432">
                        <TextBlock Text="{Binding HINNumber}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                        <TextBlock Text="{Binding CategoryLetter}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
                        <TextBlock Text="{Binding Category1}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
                        <TextBlock Text="{Binding Category2}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
                        <TextBlock Text="{Binding Category3}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

1 Ответ

2 голосов
/ 02 мая 2011

Зависит от того, хотите ли вы, чтобы метка находилась слева или над каждым текстовым блоком.

Выше проще - просто используйте дополнительные текстовые блоки в панели стека:

<StackPanel Margin="0,0,0,17" Width="432">
    <TextBlock Text="HIN Number" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
    <TextBlock Text="{Binding HINNumber}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
    <TextBlock Text="Category Letter" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
    <TextBlock Text="{Binding CategoryLetter}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
    <TextBlock Text="Category 1" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
    <TextBlock Text="{Binding Category1}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
    <TextBlock Text="Category 2" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
    <TextBlock Text="{Binding Category2}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>

    <StackPanel Visibility={Binding Category3Visibility}>
        <TextBlock Text="Category 3" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
        <TextBlock Text="{Binding Category3}" TextWrapping="Wrap" Margin="12,-6,12,0" Style="{StaticResource PhoneTextNormalStyle}"/>
    </StackPanel>       

</StackPanel>


    public System.Windows.Visibility Category3Visibility
    {
        get { return string.IsNullOrEmpty(Category3) ? System.Windows.Visibility.Collapsed : System.Windows.Visibility.Visible; }
    }

Если вы хотите, чтобы надписи располагались справа, используйте сетку из 2 столбцов для размещения элементов управления.

...