[英]Data Binding (C# UWP)
嘗試進行數據綁定
寫這個課
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;
}
}
這是需要顯示數據的地方
<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)
{
}
}
}
編譯時出現以下錯誤:
我該如何解決這個錯誤。
關於什么指數呢?
感謝幫助。
從下面的代碼中刪除order [0],order [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個元素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.