【发布时间】:2016-03-10 12:26:26
【问题描述】:
我的列表框是由使用 DataTemplate 进行数据绑定的对象列表驱动的数据,例如:
<ListBox x:Name="TheMainListBox"
ScrollViewer.IsVerticalRailEnabled="True"
ScrollViewer.IsHorizontalRailEnabled="False"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Height="540"
ItemsSource="{Binding}"
Width="Auto"
Margin="0"
Padding="0"
Background="Yellow"
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollBarVisibility="Auto"
SelectionChanged="TheMainListBox_SelectionChanged"
DoubleTapped="TheMainListBox_DoubleTapped"
>
模板:
<ListBox.ItemTemplate>
<DataTemplate>
<Grid or Stackpanel Background="Blue"
Padding="0"
BorderBrush="Black"
BorderThickness="1"
Margin="0"
>
.... Binding Textboxes/blocks
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
我最终得到了一个黄色容器,ListBox,.. 里面有蓝色矩形,ListBox 项目,但它们之间有一个垂直间隙。我可以设置一个负的垂直顶部边距,但这很粗糙并且不适用于顶部项目。如何将项目之间的垂直间隙减小到零。
如果创建一个包含静态项的 ListBox,每个项都在一个 ListBoxItem 容器中,例如:
<ListBoxItem BorderThickness="1" Width="100" Height="50"
BorderBrush="Black" Background="Red"/>
一切都按要求工作。
那么如何使用 ItemTemplate/DataBinding 消除项目之间的垂直间距? 这是关键任务,提前谢谢。
【问题讨论】:
标签: c# xaml listbox win-universal-app