【发布时间】:2017-03-22 07:04:39
【问题描述】:
我想显示一组横向移动的团队,每个团队中的玩家向下移动。为了实现这一点,我将一个 ListView (lvwTeams) 绑定到一组 Teams。我将 lvwTeams.ItemsPanel 更改为 StackPanel,其方向设置为水平。 ItemTemplate 更改为包含另一个 ListView (lvwPlayers),它绑定到 Team 的 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>
【问题讨论】:
标签: c# wpf xaml listview layout