2016-09-22 66 views
0

我使用数据绑定。数据绑定有点麻烦UWP(C#)

我有这些类:

public class Billing 
    { 
     public string first_name { get; set; } 
     public string last_name { get; set; } 
     public string company { get; set; } 
     public string address_1 { get; set; } 
     public string address_2 { get; set; } 
     public string city { get; set; } 
     public string state { get; set; } 
     public string postcode { get; set; } 
     public string country { get; set; } 
     public string email { get; set; } 
     public string phone { get; set; }   
    } 

    public class Shipping 
    { 
     public string first_name { get; set; } 
     public string last_name { get; set; } 
     public string company { get; set; } 
     public string address_1 { get; set; } 
     public string address_2 { get; set; } 
     public string city { get; set; } 
     public string state { get; set; } 
     public string postcode { get; set; } 
     public string country { get; set; } 
    } 

    public class RootObject 
    { 
     public int id { get; set; } 
     public int parent_id { get; set; } 
     public string status { get; set; } 
     public string order_key { get; set; } 
     public string currency { get; set; } 
     public string version { get; set; } 
     public bool prices_include_tax { get; set; } 
     public string date_created { get; set; } 
     public string date_modified { get; set; } 
     public int customer_id { get; set; } 
     public double discount_total { get; set; } 
     public double discount_tax { get; set; } 
     public double shipping_total { get; set; } 
     public double shipping_tax { get; set; } 
     public double cart_tax { get; set; } 
     public double total { get; set; } 
     public double total_tax { get; set; } 
     public Billing billing { get; set; } 
     public Shipping shipping { get; set; } 
     public string payment_method { get; set; } 
     public string payment_method_title { get; set; } 
     public string transaction_id { get; set; } 
     public string customer_ip_address { get; set; } 
     public string customer_user_agent { get; set; } 
     public string created_via { get; set; } 
     public string customer_note { get; set; } 
     public string date_completed { get; set; } 
     public string date_paid { get; set; } 
     public string cart_hash { get; set; } 
     public List<object> line_items { get; set; } 
     public List<object> tax_lines { get; set; } 
     public List<object> shipping_lines { get; set; } 
     public List<object> fee_lines { get; set; } 
     public List<object> coupon_lines { get; set; } 
    } 

我尝试使用数据绑定这样的:

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(new Dictionary<string, string>() { 
      { "per_page", "100" }}); 
     string products = orders.ToFormattedJsonString(); 
     List<RootObject> rootObjectData = JsonConvert.DeserializeObject<List<RootObject>>(products); 
     foreach (RootObject root in rootObjectData) 
     { 
      string date = root.date_created; 
      string name = root.billing.first_name + root.billing.last_name; 
      Orders = new ObservableCollection<RootObject> { new RootObject { date_created = date, billing = name },     
      }; 
      OrdersGridView.ItemsSource = rootObjectData;     
     } 
    } 

我需要绑定的名字,但它在结算类。我如何做到这一点?

当我明白我需要从计费

我尝试使用billing = name接收数据,但我有这个错误

错误CS0029无法隐式转换类型“字符串”到“Milano.InWork.Billing “

这是我的XAML:

<GridView x:Name="OrdersGridView" > 
      <GridView.ItemTemplate> 
       <DataTemplate> 
        <StackPanel> 
         <TextBlock Text="{Binding date_created}" Foreground="#FFFFFDFD" /> 
         <TextBlock Text="{Binding billing}"/> 

        </StackPanel> 
       </DataTemplate> 
      </GridView.ItemTemplate> 

非常感谢您的帮助!

+0

我想你需要看看数据绑定如何在xaml中工作。由于这不是你怎么做的https://msdn.microsoft.com/en-us/library/ms752347%28v=vs.110%29.aspx –

+0

hm。我不能使用Observable集合?或者是什么。我看UWP中的数据绑定教程@FilipCordas – Eugene

+0

对于'date_created'代码工作@FilipCordas – Eugene

回答

1

我没有在Bill类中找到name属性,我认为你真正想要绑定的是账单的first_namelast_name属性。

对于绑定这些,只需使用<TextBlock Text="{Binding billing.first_name}"/>而不是billing=name,它将工作。

bill是绑定到GridViewrootObjectData的子集,我们不能直接收集绑定到TextBlock,我们需要.符号获得集合中的属性之一。

关于uwp中数据绑定的更多细节请参考this documents。顺便说一下,我已经看到了这个线程中的注释,WPF中的数据绑定与uwp中的数据绑定并不完全相同,请参考上述文档以进一步学习,您也可以下载official sample进行进一步测试。

+0

谢谢你的家伙。你帮我! – Eugene