我正在尝试在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
等等。我使用带有ItemTemplate的ListBox来查询值并将其打印出来,使用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>
有更好的方法吗?我可以手动设置“网格”列上的像素宽度,但如果可能的话,我宁愿让它自动计算出宽度。
答案 0 :(得分:2)
由于WP7支持一个固定的屏幕像素宽度,因此您可以为每列设置精确的宽度。使用什么宽度 - 取决于内容,这取决于你,但这将是保持它们一个尺寸的方式。