当前位置: 代码迷 >> Windows Mobile >> wp8 中好像没有ListView或者DataGridView控件,大家都是如何呈现表格数据的
  详细解决方案

wp8 中好像没有ListView或者DataGridView控件,大家都是如何呈现表格数据的

热度:167   发布时间:2016-04-25 07:10:09.0
wp8 中好像没有ListView或者DataGridView控件,大家都是怎么呈现表格数据的?
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的需求
  相关解决方案