2016-08-25 1 views
1

てみデータバインディング(C#UWP)</p> <p>書き込み、このクラスのデータバインディングを作成する

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Text; 
using System.Threading.Tasks; 
using WooCommerceNET; 
using WooCommerceNET.WooCommerce; 

namespace xBindDataMilano.Models 
{ 

    public class Orders 
    { 
     public string Date { get; set; } 
     public string Name { get; set; } 
     public string Adress { get; set; } 


    } 
    public class OrderManager 
    { 

     public static async Task<List<Orders>> GetOrders() 
     { 



      RestAPI rest = new RestAPI("http://simplegames.com.ua/wp-json/wc/v1/", "ck_9d64c027d2c5f81b8bed3342eeccc6d337be813d", "cs_60697b1e6cbdeb8d62d19e0765e339f8e3334754"); 
      WCObject wc = new WCObject(rest); 
      //Get all products 
      var orders = await wc.GetOrders(); 


      var order = new List<Orders>(); 
      order.Add(new Orders { Date = ""+ order[0], Name = ""+ orders[0].billing.first_name , Adress = ""+ orders[0].shipping.address_1 + "      " + orders[0].shipping.address_2 }); 
      order.Add(new Orders { Date = "" + order[1], Name = "" + orders[1].billing.first_name, Adress = "" + orders[1].shipping.address_1 + "      " + orders[1].shipping.address_2 }); 
      order.Add(new Orders { Date = "" + order[2], Name = "" + orders[2].billing.first_name, Adress = "" + orders[2].shipping.address_1 + "      " + orders[2].shipping.address_2 }); 
      order.Add(new Orders { Date = "" + order[3], Name = "" + orders[3].billing.first_name, Adress = "" + orders[3].shipping.address_1 + "      " + orders[3].shipping.address_2 }); 
      order.Add(new Orders { Date = "" + order[4], Name = "" + orders[4].billing.first_name, Adress = "" + orders[4].shipping.address_1 + "      " + orders[4].shipping.address_2 }); 

      return order; 
     } 


    } 

これは、データが必要な場所のXAMLは

<Page 
 
    x:Class="Milano.Test" 
 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
 
    xmlns:local="using:Milano" 
 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
 
    xmlns:data="using:xBindDataMilano.Models" 
 
    mc:Ignorable="d"> 
 

 
    
 
<Page.Resources> 
 
    <DataTemplate x:DataType="data:Orders" x:Key="BookDataTemplate"> 
 
     <StackPanel HorizontalAlignment="Center"> 
 
       <TextBlock FontSize="16" Text="{x:Bind Date}" HorizontalAlignment="Center" /> 
 
       <TextBlock FontSize="16" Text="{x:Bind Name }" HorizontalAlignment="Center" /> 
 
       <TextBlock FontSize="10" Text="{x:Bind Adress}" HorizontalAlignment="Center" /> 
 
     </StackPanel> 
 
    </DataTemplate> 
 
</Page.Resources> 
 
<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}" Margin="20"> 
 
    <Grid.RowDefinitions> 
 
     <RowDefinition Height="*" /> 
 
     <RowDefinition Height="100" /> 
 
    </Grid.RowDefinitions> 
 

 
     <GridView ItemsSource="{x:Bind Orders}" 
 
        IsItemClickEnabled="True" 
 
        ItemClick="GridView_ItemClick" 
 
        ItemTemplate="{StaticResource BookDataTemplate}"> 
 
     </GridView> 
 

 

 
     <TextBlock Grid.Row="1" 
 
        Name="ResultTextBlock" 
 
        FontSize="24" 
 
        Foreground="Red" 
 
        FontWeight="Bold" 
 
        Margin="0,20,0,0" /> 
 

 
</Grid> 
 
</Page>

を示すことがあります

xaml.csファイル

using System; 
using System.Collections.Generic; 
using System.IO; 
using System.Linq; 
using System.Runtime.InteropServices.WindowsRuntime; 
using Windows.Foundation; 
using Windows.Foundation.Collections; 
using Windows.UI.Xaml; 
using Windows.UI.Xaml.Controls; 
using Windows.UI.Xaml.Controls.Primitives; 
using Windows.UI.Xaml.Data; 
using Windows.UI.Xaml.Input; 
using Windows.UI.Xaml.Media; 
using Windows.UI.Xaml.Navigation; 
using xBindDataMilano.Models; 



namespace Milano 
{ 
    /// <summary> 
    /// An empty page that can be used on its own or navigated to within a Frame. 
    /// </summary> 
    public sealed partial class Test : Page 
    { 

     private List<Orders> Orders; 
     public Test() 
     { 
      this.InitializeComponent(); 
      Disp(); 
     } 

     public async void Disp() { 

      Orders = await OrderManager.GetOrders(); 


     } 

     private void GridView_ItemClick(object sender, ItemClickEventArgs e) 
     { 


     } 
    } 
} 

私はこのエラー持ってコンパイルする場合:私はこのエラーを解決するにはどうすればよい

Error

を。

どのインデックスについて話していますか?

ありがとうございました。

+0

アプリケーションをデバッグしましたか?あなたはデバッガの助けを借りてあなたの質問に答えることができるはずです。 – Reddy

+0

はい。私はデバッグします。デバッガがスクリーンショット@Reddyに表示するエラーを見ることができます –

答えて

2

下位コードから注文[0]、注文[1]、...を削除します。これはあなたの問題を解決するはずです。

var order = new List<Orders>(); 
     order.Add(new Orders { Date = ""+ order[0], Name = ""+ orders[0].billing.first_name , Adress = ""+ orders[0].shipping.address_1 + "      " + orders[0].shipping.address_2 }); 
     order.Add(new Orders { Date = "" + order[1], Name = "" + orders[1].billing.first_name, Adress = "" + orders[1].shipping.address_1 + "      " + orders[1].shipping.address_2 }); 
     order.Add(new Orders { Date = "" + order[2], Name = "" + orders[2].billing.first_name, Adress = "" + orders[2].shipping.address_1 + "      " + orders[2].shipping.address_2 }); 
     order.Add(new Orders { Date = "" + order[3], Name = "" + orders[3].billing.first_name, Adress = "" + orders[3].shipping.address_1 + "      " + orders[3].shipping.address_2 }); 
     order.Add(new Orders { Date = "" + order[4], Name = "" + orders[4].billing.first_name, Adress = "" + orders[4].shipping.address_1 + "      " + orders[4].shipping.address_2 }); 

コレクションにデータがない場合、Ordersから0番目の要素にアクセスしようとしています。

+0

私は[0] .date_created注文を書いていますが、このエラーは表示されません。しかし、私の画面は白です。どのように私はそれを黒くすることができますか? –

+0

ソースにデータがないときに画面が黒く表示されるとはどういう意味ですか?それに応じてXAMLを変更します。 – Reddy

+0

using System; using System.Collections.Generic; using System.Linq; System.Threadingを使用している ; パブリッククラスプログラム { \t publicクラス受注 { 公共の文字列の日付{取得します。セット; } public string Name {get;セット; } 公開ストリングAdress {get;セット; } } \t \t公共の静的な無効メイン() \t {\t \t VAR順序=新しいリスト()。 order.Add(新しい注文{日付= "" +注文[0]。日付}); order.Add(新しい注文{Date = ""}); \t} } これは無効です。 – Reddy

関連する問題