在Windows Phone 7中使用哪种控件,以便我可以显示来自Web服务的数据

时间:2012-01-08 10:26:42

标签: windows-phone-7

我是Windows Phone 7的新手,我有一个从sql数据库返回数据的web服务。 我在asp.net的gridview中显示数据。 现在我想在Windows Phone 7中做同样的事情 使用哪种控件来显示记录以及如何使用? 非常感谢你

2 个答案:

答案 0 :(得分:0)

Windows Phone 7上没有开箱即用的数据网格控件。

这是因为很难在小屏幕上以手机网格形式获取大量数据。无论如何你想拥有它,你必须建立自己的。

你可以使用列表框作为一些软网格:

<ListBox x:Name="myListBox">
  <ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel Orientation="Horizontal">
            <TextBlock width="100" Text="{Binding Field1}"/>
            <TextBlock width="100" Text="{Binding Field2}"/>
            <TextBlock width="100" Text="{Binding Field3}"/>
            <TextBlock width="100" Text="{Binding Field4}"/>
        </StackPanel>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

如果这不是您想要的,您可以查看以下链接之一:

http://www.silverlightshow.net/items/Building-a-DataGrid-Control-for-Silverlight-for-Windows-Phone-Part-1.aspx

WpfToolkit DataGrid does not work in Windows Phone 7

答案 1 :(得分:0)

ListBox自定义DataTempale就是你要找的。

首先,从服务器下载数据并将其放入某个集合中。 ObservableCollection是最佳选择,因为它会在您添加/删除新项目时自动更新视图。因此,代码剪辑将是这样的:

 ObservableCollection<CustomItem> items = new ObservableCollection<CustomItem>();
 // add items to the `items` list
 list.ItemsSource = items; // bind items to the ListBox with a name 'list'

的Xaml:

 <ListBox x:Name="list">
      <ListBox.ItemTemplate>
           <DataTemplate>
                <Grid>
                     <Grid.ColumnDefinitions>
                          <ColumnDifenition Width="Auto" />
                          <ColumnDifenition Width="Auto" />
                     </Grid.ColumnDefinitions>
                     <TextBlock Grid.Column="0" Text={Binding Field1} />
                     <TextBlock Grid.Column="1" Text={Binding Field1} />
                </Grid>
           </DataTemplate>
      </ListBox.ItemTemplate>
 </ListBox>