Я пытаюсь отобразить таблицу данных, которая выглядит так на Windows Phone 7 (поэтому у меня нет элемента управления DataGrid:
(The columns are: Rank, Score, Win-Loss, Name.)
7 43 22-7 Aaron
2 13 4-7 Beth
5 42 3-1 Clark
И так далее. Я использовал ListBox с ItemTemplate для запроса значений и их распечатки, а Grid - для форматирования списка. Тем не менее, каждая запись сетки является отдельной! Я хочу, чтобы все столбцы выстроились в линию, но если размер элемента не совпадает, он не выравнивается.
Это код, который я использую:
<ListBox x:Name="MyListBox" ItemsSource="{Binding AllPlayers}">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Margin="10,0,10,0" Text="{Binding Rank}"/>
<TextBlock Grid.Column="1" Margin="10,0,10,0" Text="{Binding Score}"/>
<StackPanel Grid.Column="2" Margin="10,0,10,0" Orientation="Horizontal">
<TextBlock Grid.Column="2" Text="{Binding Wins}"/>
<TextBlock Grid.Column="2" Text="-"/>
<TextBlock Grid.Column="2" Text="{Binding Losses}"/>
</StackPanel>
<TextBlock Grid.Column="3" Margin="10,0,10,0" Text="{Binding Name}"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Есть ли лучший способ сделать это? Я мог бы вручную установить ширину пикселя в столбце «Сетка», но я бы предпочел, чтобы он автоматически вычислял ширину, если это возможно.