WP7でテーブルを作成したいと思います。これは、データテンプレートとしてグリッドを持つListBoxを使用する私の現在のアプローチです。Silverlight for Windows Phone 7でテーブルを作成する
<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では使用できません。
ありがとうございます! SharedSizeGroupのソリューションは、私にとってはうまく機能します。 ListBoxと共に問題なく使用できます。答えとして自分の解決策を投稿します。 – j00hi
2番目のリンクの代替ソースがありますか?回答を編集してリンクを削除するか、リンクを正常なものに置き換えることはできますか?その後、答えにフラグを立て、司会者にコメントを削除するよう依頼してください。また、将来的には*投稿リンクのみを避けてください。リンクが壊れても答えが出るように、これらの回避策をコピーしたり書き換えたりする許可を得る方が良いでしょう。ありがとう。 –