数据绑定小麻烦UWP(C#)

时间:2016-09-22 07:41:17

标签: c# visual-studio data-binding uwp

我使用数据绑定。

我有这些课程:

   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类中。我怎么能这样做?

据我所知,我需要从Billing

接收数据

我尝试使用billing = name,但我有这个错误

  

错误CS0029无法隐式转换类型&#39; string&#39;到米兰.InWork.Billing&#39;

这是我的xaml:

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

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

非常感谢你的帮助!

1 个答案:

答案 0 :(得分:1)

我在name课程中找不到Bill属性,我认为你真正想要绑定的是该帐单的first_namelast_name属性。

对于绑定这些内容,只需使用<TextBlock Text="{Binding billing.first_name}"/>代替billing=name,就可以了。

bill是绑定到rootObjectData的{​​{1}}的子集合,我们无法直接将集合绑定到GridView,我们需要获取其中一个TextBlock符号集合中的属性。

有关uwp中数据绑定的更多详细信息,请参阅this documents。顺便说一下,我看过这个帖子中的注释,WPF中的数据绑定与uwp不完全相同,请参考上面的文档以便进一步学习,你也可以下载official sample进行进一步的测试。