如何在windows phone 7.1应用程序中动态地向gridview添加行?

时间:2012-02-20 06:05:50

标签: c# silverlight windows-phone-7 gridview windows-phone-7.1

在我的窗口手机7.1应用程序(Silverlight应用程序,使用VS 2010 Express for Windows phone的c#语言)我创建了gridview以表格格式显示我的数据(搜索结果)。我创建了一个类,并将该gridview绑定到该类。这是我的xaml代码:

<phone:PhoneApplicationPage.Resources>
        <local:searchResultItemModel x:Key="searchResultIM"/>
    </phone:PhoneApplicationPage.Resources>   


  <gridView:GridView x:Name="GridView1"  CellSpacing="1" RowSpacing="1" SelectedItemChanged="GridViewSelectedItemChanged" Margin="26,16,25,22" ItemsSource="{Binding Source={StaticResource searchResultIM}, Path=Data}">

但我想动态添加行。由于这是静态的,我无法向其添加行。是动态添加行的另一种方法。请问有人帮帮我吗?

3 个答案:

答案 0 :(得分:0)

您必须使用ListBox控件并根据自己的喜好对其进行模板化。 ListBox还包括一系列功能,如UIVitualization,可以帮助处理更大的数据集。

答案 1 :(得分:0)

如上所述,您可以使用带有datatemplate的ListBox来控制每行的外观。例如:

<ListBox ItemsSource="{Binding Source={StaticResource searchResultIM}, Path=Data}" ItemTemplate="{StaticResource SearchItemTemplate}" />

将上面的ListBox元素放在您的Phone页面中的LayoutRoot(通常是Grid控件)中。在ListBox中,您将引用要在资源部分中定义的ItemTemplate(定义为DataTemplate),例如:

<DataTemplate x:Name="SearchItemTemplate">
<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="Auto" />
        <ColumnDefinition />
    </Grid.ColumnDefinitions>
    <TextBlock Text="{Binding YourDataProperty1}" />
    <TextBlock Text="{Binding YourDataProperty2}" Grid.Column="1" />
</Grid>
</DataTemplate>

模板的datacontext将是您在结果中获得的对象类型。所以YourDataProperty1等可能是该结果对象的属性。

希望它有所帮助! /安德斯

答案 2 :(得分:0)

为Silverlight for Windows Phone构建DataGrid控件

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

这适合完美地创建动态表的方法,使用列表框的问题是如果内容是beyind windows phone,那么使用listbox创建表就不容易了。这个网格控件有很多功能可以帮助像我这样的新手。它非常直观