我希望展示一组横向进行的球队,每支球队的球员都会失败。为了实现这一点,我有一个ListView(lvwTeams)绑定到一组团队。我将lvwTeams.ItemsPanel更改为StackPanel,其方向设置为Horizontal。 ItemTemplate被更改为包含另一个ListView(lvwPlayers),它绑定到团队的Players集合。
一切正常,但ItemTemplate中定义的控件出现在StackPanel的中间。有什么方法可以让lblTeamName位于顶部,lvwPlayers位于此下方,但填充StackPanel给出的剩余区域?
这是XAML:
<ListView x:Name="lvwTeams" Grid.Row="1" Grid.Column="1" ItemsSource="{Binding Teams}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"></StackPanel>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Label x:Name="lblTeamName" Grid.Row="0" Content="{Binding Name}"/>
<ListView x:Name="lvwPlayers" Grid.Row="1" ItemsSource="{Binding Players}" >
<ListView.ItemTemplate>
<DataTemplate>
<Label Content="{Binding FullName}"/>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
非常感谢您的任何帮助。
答案 0 :(得分:1)
尝试将拉伸放在ListView的内容上,如下所示:
<ListView x:Name="lvwTeams"
Grid.Row="1"
Grid.Column="1"
ItemsSource="{Binding Teams}"
HorizontalContentAlignment="Stretch"
VerticalContentAlignment="Stretch">
将*
放在网格的第二行,以拉伸第二个ListView。
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>