[英]WP8 - Display result of WebService in grid's columns
您好我已經構建了一個從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>
但我仍然有黑屏。
有人會幫我解決這個問題嗎?
首先你制作一個getter setter方法
public class test
{
public string Id{get;set;}
public string Name{get;set;}
public test(string id, string name)
{
Id=id;
Name=name;
}
public test()
{
}
than add your take one generc like
List<Test> lst=new List<test>();
private void Listado2(object sender, ListadoCompletedEventArgs e)
{
lst.add(new test(id,name));
listB.itemsource=lst;
}
<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>
訪問以下鏈接也可以獲得更多想法
希望它對你有用.....
我可能在這里錯了,但是一旦Listado2結束,e.Result不會立即存在嗎?
我並不完全專業,但我會做的是將結果中的東西復制到我可以保存更久的地方。
當我讀到MansinhDodiya之前的回答時,他基本上是在告訴你同樣的事情。
創建一個名為Item
的類,其中包含兩個屬性( public string Id{get;set;}
是屬性)
有更多的方法可以做到這一點,其中之一是去代碼隱藏(該頁面的.xaml.cs並在那里創建類,其他是在同一名稱空間中創建一個新的第三個廣告,設置新的命名空間和添加使用)。
所以在頁面的.xaml.cs中創建類似的類:
class Item { public string Id {get;set;} //this is the first property i would later bind public string Name {get;set;} //this is the second property public Item(string id, string name) // this is the contructor, every time // an instance of Item is created, this // method is called { Id = id; Name = name; } }
在某處可以訪問這些Items
的列表
在該類的旁邊,在頁面類中,創建該列表的實例:
List<Item> itemlist = new List<Item>();
將數據復制到List<Item>
,然后將該列表設置為列表框的itemsSource
。
在Listado2
里面將Listado2
的東西復制到itemlist
:
private void Listado2(object sender, ListadoCompletedEventArgs e) { ...copying from e.Result into itemList... listB.itemsource = itemList; }
然后將xaml綁定定義更改為屬性的名稱 - 在我的情況下:
<ListBox x:Name="listB"> <ListBox.ItemTemplate> <DataTemplate> <Grid> ..omitted... <TextBlock Text="{Binding Id}" Grid.Column="0" /> <TextBlock Text="{Binding Name}" Grid.Column="1" /> </Grid> </DataTemplate> </ListBox.ItemTemplate>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.