簡體   English   中英

WP8 - 在網格列中顯示WebService的結果

[英]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>

訪問以下鏈接也可以獲得更多想法

請在Windows Phone中綁定數據

我怎樣才能將數據庫列表綁定到WP7中的ListBox

希望它對你有用.....

我可能在這里錯了,但是一旦Listado2結束,e.Result不會立即存在嗎?

我並不完全專業,但我會做的是將結果中的東西復制到我可以保存更久的地方。

當我讀到MansinhDodiya之前的回答時,他基本上是在告訴你同樣的事情。

  1. 創建一個名為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; } } 
  2. 在某處可以訪問這些Items的列表

    在該類的旁邊,在頁面類中,創建該列表的實例:

     List<Item> itemlist = new List<Item>(); 
  3. 將數據復制到List<Item> ,然后將該列表設置為列表框的itemsSource

    Listado2里面將Listado2的東西復制到itemlist

     private void Listado2(object sender, ListadoCompletedEventArgs e) { ...copying from e.Result into itemList... listB.itemsource = itemList; } 
  4. 然后將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM