使用JSON的应用程序在模拟器上工作但不在实际设备上(Windows Phone 8.1)

时间:2014-11-17 16:12:54

标签: json windows-phone-8.1 emulation device

我的申请有问题。当我在VS 2013模拟器上运行它时工作正常,但是当我尝试在设备上运行它时,它会向我显示一个错误:"无法对空引用执行运行时绑定"。谁能告诉我为什么?

public MainPage()
    {
        this.InitializeComponent();
        this.NavigationCacheMode = NavigationCacheMode.Required;
        var client = new HttpClient();
        var task = client.GetAsync("json")
          .ContinueWith((taskwithresponse) =>
          {
              var response = taskwithresponse.Result;
              var jsonString = response.Content.ReadAsStringAsync();
              jsonString.Wait();
              dynamic content = JsonConvert.DeserializeObject<RootObject>(jsonString.Result);
              Dispatcher.RunAsync(CoreDispatcherPriority.Normal, new DispatchedHandler(() =>
              {

                  List.ItemsSource = content.value.items; //Here is an error

                  for (int i = 0; i < 30; i++)
                  {
                      if (content.value.items[i].description[0] == '<')
                      {
                          string input = content.value.items[i].description;
                          content.value.items[i].description = input.Substring(input.IndexOf("/a>") + 3);
                      }
                  }

              })).AsTask().Wait();
          });

    }

XAML:     

<Page.Resources>
    <CollectionViewSource 
        x:Key="Value" 
        ItemsPath="Value" 
      Source="{Binding}"/>

    <DataTemplate x:Key="SampleDataTemplate">
        <Grid Margin="0,0,0,10">
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="10" />
                <ColumnDefinition Width="*" />
            </Grid.ColumnDefinitions>


            <Grid Grid.Column="1" Margin="3,0,0,0">
                <Grid.RowDefinitions>
                    <RowDefinition Height="Auto" />
                    <RowDefinition Height="Auto" />
                </Grid.RowDefinitions>
                <TextBlock HorizontalAlignment="Left" 
                           Text="{Binding title}"
                           VerticalAlignment="Top" 
                           Margin="0,0,0,0" 
                           Foreground="White" 
                           FontSize="20"
                           TextWrapping="Wrap"
                           Style="{StaticResource ListViewItemTextBlockStyle}"/>
                <TextBlock 
                    x:Name="text1"
                    HorizontalAlignment="Left" 
                           TextWrapping="Wrap" 
                           Text="{Binding pubDate}" 
                           VerticalAlignment="Top" 
                           Margin="0" 
                           Grid.Row="1" 
                           FontStyle="Italic"
                           Style="{StaticResource ListViewItemSubheaderTextBlockStyle}"/>

            </Grid>

        </Grid>
    </DataTemplate>

</Page.Resources>


<Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="100*"/>
        <RowDefinition Height="567*"/>
    </Grid.RowDefinitions>

    <ListView x:Name="List" 
              Grid.Row="1" Margin="0,20.167,20,53" 
              IsItemClickEnabled="True" 
              IsTapEnabled="True"
              ItemClick="listView_ItemClick"
              SelectionChanged="List_SelectionChanged"
              DataContext="bindingUsage"

              ItemsSource="{Binding Source={StaticResource Value}}"   
              ItemTemplate="{StaticResource SampleDataTemplate}"
        />

</Grid>

0 个答案:

没有答案