2016-11-08 23 views
0

我想要顯示水平方向的團隊集合,每個團隊中的玩家都關閉。爲了實現這一點,我有一個ListView(lvwTeams)綁定到一組隊。我將lvwTeams.ItemsPanel的方向設置爲Horizo​​ntal,將其更改爲StackPanel。 ItemTemplate被更改爲包含綁定到Team的Players集合的另一個ListView(lvwPlayers)。在ListView.ItemsPanel中使用StackPanel的對齊問題

所有工作正常,但在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> 

提前任何幫助,非常感謝。

回答

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

嗨Lupu Silviu,這很好!謝謝! – Cleve

+0

@Cleve。很高興聽到它的作品。如果確定,您可以將其標記爲答案。 –

+0

由於某種原因,我不得不等待4分鐘以將其標記爲答案,因此延遲。 – Cleve