I've been trying to load & deserialize a JSON file into a datagrid for several days now (using JSON.net), and the grid keeps turning up blank. I'm sure it's obvious to most and I'm probably missing some major items... but I'm learning and just can't seem to figure this out. Would appreciate some guidance!
Here's my XAML:
<DataGrid x:Name="dataGrid"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
AutoGenerateColumns="False"
ItemsSource="{Binding items}" Margin="0,36,0,0">
<DataGrid.Columns>
<DataGridTextColumn Header="projectNumber" Binding="{Binding Path=projectNumber}"/>
<DataGridTextColumn Header="projectName" Binding="{Binding Path=projectName}"/>
<DataGridTextColumn Header="Directory1" Binding="{Binding Path=Directory1}"/>
<DataGridTextColumn Header="Directory2" Binding="{Binding Path=Directory2}"/>
<DataGridTextColumn Header="Directory3" Binding="{Binding Path=Directory3}"/>
</DataGrid.Columns>
</DataGrid>
Here is my backend:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// deserialize JSON directly from a file
using (StreamReader file = File.OpenText(@"C:\Projects\JSONimport\projectList.json"))
{
JsonSerializer serializer = new JsonSerializer();
ProjectThread projectThread2 = (ProjectThread)serializer.Deserialize(file, typeof(ProjectThread));
}
}
public void LoadJson()
{
using (StreamReader r = new StreamReader(@"C:\Projects\JSONimport\projectList.json"))
{
string json = r.ReadToEnd();
ObservableCollection<ProjectThread> items = JsonConvert.DeserializeObject<ObservableCollection<ProjectThread>>(json);
}
}
}
public class ProjectThread
{
public String projectNumber { get; set; }
public String projectName { get; set; }
public String Directory1 { get; set; }
public String Directory2 { get; set; }
public String Directory3 { get; set; }
}
And here's my tester JSON file format:
{
"projectNumber": "100",
"projectName": "sample",
"Directory1": "x",
"Directory2": "x",
"Directory3": "x"
},
{
"projectNumber": "101",
"projectName": "sample 2",
"Directory1": "x",
"Directory2": "x",
"Directory3": "x"
},