【发布时间】:2014-06-19 09:31:27
【问题描述】:
我希望有人能帮我解决这个问题,因为它让我发疯。我正在为一个工作项目编写原型应用程序,它也是我的第一个 Windows 8 应用程序。我要做的就是获取一个 ListView 控件来显示集合中的一些信息,我已经包含了下面的所有代码。我似乎无法让它与我真正想要显示的集合一起工作,但如果我制作一个测试类和集合,我可以很好地显示,代码也包括在内。我完全被这个弄糊涂了,所以它一定是我遗漏了一些明显的东西,可能只见树木不见森林。
任何指针将不胜感激。
测试代码(工作正常):
代码背后:
public class Person
{
public string Firstname { get; set; }
public string Surname { get; set; }
}
private List<Person> GetPeople()
{
var people = new List<Person>();
people.Add(new Person() { Firstname = "John", Surname = "Smith" });
people.Add(new Person() { Firstname = "Tom", Surname = "Jones" });
people.Add(new Person() { Firstname = "Barry", Surname = "Thomas" });
return people;
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
OrdersListView.DataContext = this.GetPeople();
}
XAML:
<ListView x:Name="OrdersListView" HorizontalAlignment="Center" VerticalAlignment="Center" ItemsSource="{Binding}" Width="auto" Height="auto">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="Name: " Margin="2" />
<TextBlock Text="{Binding Firstname}" Margin="2" />
<TextBlock Text="{Binding Surname}" Margin="2" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
实际代码(不显示):
代码背后:
private async Task<List<Order>> LoadData()
{
const string serviceUrl = "http://localhost:54879/";
var client = new HttpClient
{
BaseAddress = new Uri(serviceUrl)
};
HttpResponseMessage response = await client.GetAsync("api/orders");
var orders = await response.Content.ReadAsAsync<Order[]>();
return orders.ToList();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
OrdersListView.DataContext = this.LoadData();
}
XAML:
<ListView x:Name="OrdersListView" HorizontalAlignment="Center" VerticalAlignment="Center" ItemsSource="{Binding}" Width="auto" Height="auto">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" Margin="2">
<TextBlock Text="Order Ref: " Margin="2" />
<TextBlock Text="{Binding OrderReference}" Margin="2" />
<TextBlock Text="Name: " Margin="2" />
<TextBlock Text="{Binding Firstname}" Margin="2" />
<TextBlock Text="{Binding Surname}" Margin="2" />
<TextBlock Text="Address: " Margin="2" />
<TextBlock Text="{Binding Address1}" Margin="2" />
<TextBlock Text="{Binding Address2}" Margin="2" />
<TextBlock Text="{Binding TownCity}" Margin="2" />
<TextBlock Text="{Binding Country}" Margin="2" />
<TextBlock Text="{Binding Postcode}" Margin="2" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
【问题讨论】:
标签: c# .net xaml listview windows-store-apps