我正在开发一个Windows应用商店应用。我正在设置gridview的DataContext。一些数据显示其他人没有显示。虽然我可以在反序列化的类中看到数据。
这是我下载JSON的代码:
private async void loadData(string Id, Order data)
{
HttpClient http = new HttpClient();
http.BaseAddress = new Uri(BASE_URL);
string partial_url = "rest/admin/order/info.json?id=" + Id;
System.Net.Http.HttpResponseMessage response = await http.GetAsync(partial_url);
SingleOrder orderData = new SingleOrder();
response.EnsureSuccessStatusCode();
if (response.IsSuccessStatusCode)
{
string jsonMessage;
using (Stream responseStream = await response.Content.ReadAsStreamAsync())
{
jsonMessage = new StreamReader(responseStream).ReadToEnd();
orderData = JsonConvert.DeserializeObject<SingleOrder>(jsonMessage);
OrderDetailsView.DataContext = orderData.order;
}
}
else
{
MessageDialog message = new MessageDialog("Internal server error occured!", "Error!");
UICommand okCommand = new UICommand("Okay");
message.Commands.Add(okCommand);
await message.ShowAsync();
}
}
我可以在这里看到数据:
我的xaml是:
<GridView x:Name="OrderDetailsView" Grid.Row="1" Height="auto" Width="auto" Background="#F0F5F5" SelectionMode="None">
<Grid Height="500" Width="500" Background="White" Margin="15,15,15,15" HorizontalAlignment="Center">
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Order Information" Foreground="#31AAE0" Grid.Column="0" FontSize="25" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Bottom"></TextBlock>
</Grid>
<Grid Grid.Row="1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Order Id" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Center"></TextBlock>
<TextBlock Text="{Binding id}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Center"></TextBlock>
</Grid>
<Grid Grid.Row="2" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Name" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding customerName}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="3" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Order Total" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding grandTotal}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="4" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Order Date" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding created}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="5" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Order Status" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding orderStatus}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="6" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="IP" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding ipAddress}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
</Grid>
</Grid>
<Grid Height="500" Width="500" Background="White" Margin="15,15,15,15" HorizontalAlignment="Center">
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Shipping Details" Foreground="#31AAE0" Grid.Column="0" FontSize="25" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Bottom"></TextBlock>
</Grid>
<Grid Grid.Row="1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding shipping.id}" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Center"></TextBlock>
</Grid>
<Grid Grid.Row="2" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding shipping.addressLine1}" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="3" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding shipping.addressLine2}" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="4" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding shipping.country.name}" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="5" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding shipping.email}" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="6" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Shipping Cost" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding shippingCost}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="7" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Shipping Status" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding shippingStatus}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
</Grid>
</Grid>
<Grid Height="500" Width="500" Background="White" Margin="15,15,15,15" HorizontalAlignment="Center">
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
<RowDefinition Height="60"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Billing Details" Foreground="#31AAE0" Grid.Column="0" FontSize="25" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Bottom"></TextBlock>
</Grid>
<Grid Grid.Row="1" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding billing.id}" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Center"></TextBlock>
</Grid>
<Grid Grid.Row="2" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Address line 1" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="3" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Address line 2" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="4" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Country" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="5" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Email here" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="6" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Payment Status" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding paymentStatus}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
</Grid>
</Grid>
<ScrollViewer>
<StackPanel Orientation="Vertical">
<Grid Height="500" Width="500" Background="White" Margin="15,15,15,15" HorizontalAlignment="Center">
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="#F8FAFA">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Order Details" Foreground="#7E7E81" Grid.Column="0" FontSize="25" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Center"></TextBlock>
</Grid>
<Grid Grid.Row="1">
<ListView ItemsSource="{Binding items}" HorizontalAlignment="Stretch" ItemContainerStyle="{StaticResource ContactGroups}" VerticalAlignment="Stretch" Background="#FFFFFF" Margin="0,0,0,0" SelectionMode="None">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<Border BorderBrush="#666666" Margin="0,0,0,0" BorderThickness="0,0,0,0.2" Grid.Column="0">
<TextBlock Name="tb1" Text="{Binding productName}" Height="auto" Width="auto" Margin="25,0,25,0" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20" Foreground="#636D6F" Grid.Column="0"/>
</Border>
<Border BorderBrush="#666666" Margin="0,0,0,0" BorderThickness="0,0,0,0.2" Grid.Column="1" >
<TextBlock Name="tb2" Text="{Binding price}" Height="auto" Width="auto" Margin="0,0,0,0" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Center" FontSize="20" Foreground="#636D6F" Grid.Column="1"/>
</Border>
</Grid>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
<Rectangle StrokeThickness="1" Stroke="Black"></Rectangle>
</ListView>
</Grid>
</Grid>
</Grid>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Sub Total" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding subTotal}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Total Tax" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding totalTax}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Shipping Cost" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding shippingCost}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="3">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Shipping Tax" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding shippingTax}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="4">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Handling Cost" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding handlingCost}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="5">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Discount" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding totalDiscount}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
<Grid Grid.Row="6">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Grand Total" Foreground="#666666" Grid.Column="0" FontSize="20" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Top"></TextBlock>
<TextBlock Text="{Binding grandTotal}" Foreground="#666666" Grid.Column="1" FontSize="20" HorizontalAlignment="Left" Margin="0,0,25,0" VerticalAlignment="Top"></TextBlock>
</Grid>
</Grid>
</StackPanel>
</ScrollViewer>
<ScrollViewer>
<Grid Height="500" Width="500" Background="White" Margin="15,15,15,15" HorizontalAlignment="Center">
<Grid Grid.Row="1">
<Grid.RowDefinitions>
<RowDefinition Height="80"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" Background="#F8FAFA">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="Custom Field Details" Foreground="#7E7E81" Grid.Column="0" FontSize="25" HorizontalAlignment="Left" Margin="25,0,0,0" VerticalAlignment="Center"></TextBlock>
</Grid>
<Grid Grid.Row="1">
<ListView x:Name="CustomFieldDetails" ItemsSource="{Binding}" HorizontalAlignment="Stretch" ItemContainerStyle="{StaticResource ContactGroups}" VerticalAlignment="Stretch" Background="#FFFFFF" Margin="0,0,0,0" SelectionMode="None">
<ListView.ItemTemplate>
<DataTemplate>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50"/>
</Grid.RowDefinitions>
<Grid Grid.Row="0" >
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"/>
<ColumnDefinition Width="1*"/>
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding Name}" Height="auto" Width="auto" Margin="25,0,25,0" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Bottom" FontSize="20" Foreground="#636D6F" Grid.Column="0"/>
<TextBlock Text="{Binding Name}" Height="auto" Width="auto" Margin="0,0,0,0" TextWrapping="Wrap" HorizontalAlignment="Center" VerticalAlignment="Bottom" FontSize="20" Foreground="#636D6F" Grid.Column="1"/>
</Grid>
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Grid>
</Grid>
</ScrollViewer>
</GridView>
我的输出是:
在发货时,只有结算ID会显示其他字段,例如address_line1 address_line2,但没有显示。
这是singleOrder类:
public class SingleOrder
{
public Order order { get; set; }
}
我可以看到所有数据都已正确反序列化,我可以在调试器中查看。但是,当我把它们放在文本块中时,没有任何表现。
答案 0 :(得分:0)
问题发生在GridView
。虽然我是从代码设置dataContext但是我没有添加GridView
itemsSource
。
只需添加即可解决问题:
ItemsSource="{Binding}"