【发布时间】:2012-02-21 17:13:50
【问题描述】:
在表格创建中,列表框方法不适合我的项目需要,因为表格超出了手机视图。 Gridview 正好适合。但我不知道如何在运行时添加行。有人可以帮我吗?
namespace myApp
{
public class Person
{
public string Id { get; set; }
public string Name { get; set; }
public Person(string dId, string dName)
{
this.Id = dId;
this.Name = Name;
}
}
}
这是我的 XAML 代码:
<Grid x:Name="LayoutRoot" Background="Transparent">
<gridView:GridView x:Name="GridView1" CellSpacing="1" RowSpacing="1" ItemsSource="{Binding}">
<gridView:GridView.Columns>
<gridView:GridViewTextColumn Header="ID" Binding="{Binding} />
<gridView:GridViewTextColumn Header="Name" Binding="{Binding}"/>
</gridView:GridView.Columns>
</gridView:GridView>
</Grid>
要静态创建,我为人员对象(例如 personVM)创建了一个 viewmodel 并为该对象创建了静态资源(在 XAML 中)并与我的 gridview 绑定,这没有问题。
<phone:PhoneApplicationPage.Resources>
<local:PersonViewModel x:Key="PersonVM"/>
</phone:PhoneApplicationPage.Resources>
<gridView:GridView x:Name="GridView1" CellSpacing="1" RowSpacing="1" ItemsSource="{Binding Source={StaticResource PersonVM}, Path=Data}"
>
如何动态地做到这一点? (可以通过 *observablecollection?? 来完成)*我无法使用 datacontext。
GridView1.DataContext = new Person("S403","Arthos");
它不起作用。如何识别代码中的列。请帮助我。
【问题讨论】:
-
您的 gridview 可以通过对象 "GridView1" 访问。在您的 VS2010 中,只需键入“GridView1”。并自动完成打开。我确定某处存在诸如添加列之类的东西。祝你好运:)
-
不,伙计,我无法识别列。 Gridview1.Columns 是唯一的希望。但是如何识别具有columns属性的列(该属性是向gridview添加列)。
-
是的,就是这样!列是一个集合。使用“Gridview1.Columns”。并检查自动完成。某处会有一个添加:)
-
Gridview1.columns.Add 只是添加列,我找不到任何相关内容:(
-
真的吗?启动我的 VS。给我一分钟:)
标签: silverlight windows-phone-7 gridview windows-phone-7.1 observablecollection