wp8 中好像没有ListView或者DataGridView控件,大家都是怎么呈现表格数据的?
------解决思路----------------------
你让listbox中的一行显示多列内容不就是表格了。
------解决思路----------------------
用LongListSelector,好像ListBox也没有。
MainPage.xaml:
<phone:PhoneApplicationPage.Resources>
<local:Persons x:Key="personsSource"/>
<DataTemplate x:Key="DT_PersonShower">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="45"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="auto"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" Grid.Column="0" VerticalAlignment="Center"/>
<Canvas Width="2" Background="Red" Grid.Column="1"/>
<TextBlock Text="{Binding Age}" HorizontalAlignment="Center" VerticalAlignment="Center" Grid.Column="2"/>
<Canvas Height="2" Background="Red" Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3"/>
</Grid>
</DataTemplate>
</phone:PhoneApplicationPage.Resources>
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
<Border BorderBrush="Red" BorderThickness="2">
<phone:LongListSelector
ItemTemplate="{StaticResource DT_PersonShower}"
ItemsSource="{StaticResource personsSource}"
>
</phone:LongListSelector>
</Border>
</Grid>
public class Persons : ObservableCollection<Person>
{
public Persons()
{
this.Add(new Person { Name = "Student-1", Age = 2 });
this.Add(new Person { Name = "Student-2", Age = 19 });
this.Add(new Person { Name = "Student-3", Age = 21 });
this.Add(new Person { Name = "Student-4", Age = 65 });
this.Add(new Person { Name = "Student-5", Age = 98 });
this.Add(new Person { Name = "Student-6", Age = 37 });
}
}

------解决思路----------------------
楼上这些方法每次使用表格还是要手动设置border其实还是很麻烦,本来Grid有一个虚线网格,可惜只能在设计器里面看看,可以尝试自己继承自panel仿照grid做一个网格容器,比较简单的话我目前的解决方案是继承自grid的一个自定义控件,可惜grid很多方法都不能重新,在该控件load事件里面,检测grid的行和列,在对应的行列里面加入横线竖线,这样基本满足一个LineGrid的需求