【发布时间】:2013-10-23 07:55:44
【问题描述】:
您好,我已经构建了一个从 SQL 返回数据的WebService:
public void ListadoWebService()
{
// InitializeComponent();
ServiceTours.ServiceToursClient cl = new ServiceTours.ServiceToursClient();
cl.ListadoCompleted += new EventHandler<ListadoCompletedEventArgs>(Listado2);
cl.ListadoAsync();
}
private void Listado2(object sender, ListadoCompletedEventArgs e)
{
listB.ItemsSource = e.Result;
}
现在我尝试在grid 的columns 中显示数据。我认为它可以将binding 的数据作为textblock 用于特定列,但即使数据在e.Result 中返回,我也无法显示数据。
我尝试了以下操作:
<ListBox x:Name="listB">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding id}" Grid.Column="0" />
<TextBlock Text="{Binding name}" Grid.Column="1" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
但我仍然有黑屏。
有人能帮我解决这个问题吗?
【问题讨论】:
-
我编辑了我的帖子,所以你会明白的,我会在一分钟内给你写一个更完整的答案。 :)
-
@mishan 谢谢你。我试着按照你和 MansingDodiya 的建议去做,但我遇到了问题: lst.Add(new test(Id, Name));收到此错误:PhoneApp1.test 不包含采用 2 个参数的构造函数。我不知道如何解决,请您帮忙?
-
是的,问题是我的定义不包含构造函数,而他的包含。只需在测试类中插入
public test(string id, string name) { Id=id; Name=name; }。 :) -
我将重写我的代码,以便准确地解决您的问题。我没有准确地写出来,有些名字只是我认为的,而不是他们真正的名字:)
-
@mishan e.Result 不只是提供像 SecondProperty 这样的任何确切名称。非常感谢您的帮助。
标签: c# sql web-services linq-to-sql windows-phone-8