在我的文本块前面添加一个标签

本文关键字:一个 标签 添加 我的 文本 前面 | 更新日期: 2023-09-27 17:54:38

我有一个列表,从web服务获取数据,但数据需要一个标签或另一个文本块来说明数据是什么。有没有一种方法来插入这个列表框?

所以我想要的结果是

"HIN Number:" -然后显示绑定到HINNumber的文本块

"Category Letter:" -然后显示绑定到categoryLetter的文本块

"Category 1:" -然后显示绑定到category1的textblock

"Category 2:" -然后显示绑定到category2的textblock

"Category 3:" -然后显示绑定到category3的textblock

我想我可以把另一个文本块对齐到匹配的绑定文本块旁边,但有些值是空的,所以列表框的位置不断变化,所以这是行不通的。

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

在我的文本块前面添加一个标签

这取决于您是希望标签位于每个文本块的左侧还是上方。

上面的

更简单-只需在stackpanel中使用额外的文本块:

<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列的网格来布局控件