在我的文本块前面添加一个标签
本文关键字:一个 标签 添加 我的 文本 前面 | 更新日期: 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列的网格来布局控件