来自json的wp7 listbox绑定

时间:2012-08-21 09:04:40

标签: c# json windows-phone-7 listbox

大家好我有一点问题我无法绑定列表框中的数据,如果有人可以告诉我这是什么问题PLZ

我解析了我的数据,我从json下面得到了我想要的所有内容

{
maj: true,
data: [
{
c: 2,
t: 0,
r: [
168,
"La rentrée Auchan",
0,
"2012-08-15 00:00:00",
"2012-08-21 00:00:00",
56,
"VL"
]
},
....

我解析了我想要的数据没有问题,我得到了我希望一切正常的所有数据但我不知道在这种情况下如何绑定它。注意:json结果在e.result中

  var obj = App.Current as App;
            // obj.R2= JsonConvert.DeserializeObject<Root>(e.Result).data.Where(d => d.t == 0).SelectMany(d => d.r.Take(2));

            JObject jobject = JObject.Parse(e.Result);
            JArray arr = (JArray)jobject["data"];
            List<JsonC> apps = new List<JsonC>();
            for (int i = 0; i < arr.Count; i++)
            {
                apps.Add(new JsonC { t = (int)arr[i]["t"], r = (JArray)arr[i]["r"] });
            }
            List<int> itList = new List<int>();
            List<int> Number = new List<int>();
            List<string> Name = new List<string>();
            List<string> stList = new List<string>();
            //listClients.ItemsSource = apps.Where(ap => ap.t == 0);
            foreach (var el in apps.Where(ap => ap.t == 0))
            {
                itList.Add((int)el.r[0]);
                Name.Add((string)el.r[1]);
                Number.Add((int)el.r[5]);
                stList.Add((string)el.r[6]);
            }

            obj.R1 = itList;
            obj.R2 = Number;
            obj.R3 = Name;
            obj.R4 = stList;

现在我已经尝试在texblock中绑定obj.R3,但它没有任何帮助吗?

<ListBox Height="512"  Margin="0,-2,6,0" Name="listClients" VerticalAlignment="Top" Loaded="listImage_Loaded">

                    <ListBox.ItemsPanel>
                        <ItemsPanelTemplate>
                            <toolkit:WrapPanel ItemHeight="150" ItemWidth="150"/>
                        </ItemsPanelTemplate>
                    </ListBox.ItemsPanel>
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <StackPanel>

                                <TextBlock Text="{Binding obj.R3}" x:Name="Textblock1" Foreground="Black" Width="100" TextAlignment="Center" Style="{StaticResource PhoneTextSubtleStyle}"/>
                            </StackPanel>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>

1 个答案:

答案 0 :(得分:0)

您应该从代码隐藏本身为ListBox指定Datacontext。

listClients.ItemsSource = obj.R3;

<TextBlock Text="{Binding}" .../>