2011-03-06 12 views
2

内のデータのテーブルを表示するとき、私は、Windows Phone 7の上でこの(したがって私は、DataGridコントロールを持っていないように見えるデータのテーブルを表示しようとしています:列幅の問題XAML

(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で使用して値を照会し、リストを書式設定するためのグリッドを使用して印刷しましたが、各グリッドのエントリは別です!列をすべて整列させたいが、要素のサイズ同じサイズではありませんが、整列していません。

これは私が使用しているコードです:

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

これを行うより良い方法はありますか?私は手動で "グリッド"列にピクセル幅を設定することができますが、私はむしろ、可能であれば幅を自動的に把握したいと思います。

答えて

2

WP7は1つの固定画面ピクセル幅をサポートするので、各列の正確な幅を設定できます。使用する幅 - コンテンツに応じてそれはあなた次第ですが、それはそれらをすべて1つのサイズに保つ方法です。

+0

ああ私は明確にすべきだった。私はそのようにすることができますが、私はむしろその場で幅を把握する "自動"列サイズが好きです。私はちょうど怠惰ではなく、最大ピクセル幅を把握すべきだと思います。 =) – LCC

+0

Autoに設定すると、最終的に幅を制限する機能をあきらめることになります。しかし、ちょっと、そこにも 'MaxWidth'があります! –