Я бы хотел создать таблицу на WP7. Это мой текущий подход с использованием ListBox с сеткой в качестве шаблона данных.
<ListBox x:Name="ResultsList" Margin="12,0" Grid.Row="1">
<ListBox.Resources>
<DataTemplate x:Key="ResultsListItem">
<Grid d:DesignWidth="385" Height="28">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="88"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock x:Name="textBlock1" Margin="0,0,24,0"/>
<TextBlock x:Name="textBlock2" Margin="0,0,24,0"
VerticalAlignment="Top" Grid.Column="1"/>
<TextBlock x:Name="textBlock3" Margin="0,0,24,0"
VerticalAlignment="Top" Grid.Column="3"/>
</Grid>
</DataTemplate>
</ListBox.Resources>
<ListBox.ItemTemplate>
<StaticResource ResourceKey="ResultsListItem"/>
</ListBox.ItemTemplate>
</ListBox>
Проблема в том, что результирующие столбцы таблицы не имеют одинакового размера. Определения столбцов таблицы применяются к каждой строке независимо от других строк. Это означает, что если в textBlock1 есть длинный текст, столбец 0 будет больше. В следующей строке может быть более короткий текст в textBlock1, в результате чего столбец 0 также будет короче столбца 0 в предыдущей строке.
Как столбцы во всех строках могут быть одинакового размера? Я не хочу использовать фиксированную ширину, потому что, когда ориентация меняется с книжной на альбомную, столбцы автоматически меняют размеры.
Существует HeaderedItemsControl, но, насколько я понимаю, он недоступен для Windows Phone 7?