2016-08-27 3 views
0
<ListView x:Name="listView" Height="150" Canvas.Left="10" Canvas.Top="60" Width="402"> 
    <ListView.View> 
     <GridView> 
      <GridViewColumn Header="Product ID" DisplayMemberBinding="{Binding productId}"/> 
      <GridViewColumn Header="Product Name" DisplayMemberBinding="{Binding productName}"/> 
      <GridViewColumn Header="Unit Price" DisplayMemberBinding="{Binding unitPrice}"/> 
      <GridViewColumn Header="Units in stock" DisplayMemberBinding="{Binding unitsInStock}"/> 
      <GridViewColumn Header="Reorder Level" DisplayMemberBinding="{Binding reorderLevel}"/> 

     </GridView> 
    </ListView.View> 
</ListView> 

<DataGrid x:Name="dataGrid" Canvas.Left="10" Canvas.Top="215" AutoGenerateColumns="False" Height="178" Width="402" 
    HorizontalAlignment="Stretch" 
     VerticalAlignment="Stretch" 
     ItemsSource="{Binding Items}"> 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="productId" Binding="{Binding Path=productId}"/> 
     <DataGridTextColumn Header="productName" Binding="{Binding Path=productName}"/> 
     <DataGridTextColumn Header="unitPrice" Binding="{Binding Path=unitPrice}"/> 
     <DataGridTextColumn Header="unitsInStock" Binding="{Binding Path=unitsInStock}"/> 
     <DataGridTextColumn Header="reorderLevel" Binding="{Binding Path=reorderLevel}"/> 
    </DataGrid.Columns> 
</DataGrid> 

Oben sind zwei WPF-Steuerelemente, listBox und dataGrid. Ich bin in der Lage, direkt von root Json Daten von einer URL in listBox zu laden. Ich möchte dasselbe für dataGrid tun. Ich möchte Daten aus rohen Json-Daten in dataGrid laden. Bitte helfen Sie.Wie lade ich Daten in DataGrid direkt aus rohen JSON-Daten von einer URL in C#?

Produktklasse enthält 5 Attribute.

Backend ::

private void TestConnection(object sender, RoutedEventArgs e) 
    { 
     string url = "http://192.168.167.1:8080/StudentOnlineRetailerWeb/rest/product"; 
     WebClient client = new WebClient(); 
     string reply = client.DownloadString(url); 
     DataContractJsonSerializer serializer = new DataContractJsonSerializer(typeof(List<Product>)); 
     listView.Items.Clear(); 
     List<Product> product; 

     product = (List<Product>)serializer.ReadObject(client.OpenRead(url)); 
     foreach (Product temp in product) 
     { 
      listView.Items.Add(temp); 
     } 


    } 

Antwort

0

Warum von einer Datentabelle nicht geladen werden, das wäre leicht

DataTable dt = (DataTable)JsonConvert.DeserializeObject(json, (typeof(DataTable))); 
Verwandte Themen