& JSONファイルをデータグリッドに数日間デシリアライズして(JSON.netを使用)、グリッドは空白になり続けます。私はそれが最も明らかであると確信していると私はおそらくいくつかの主要な項目を逃している...しかし、私は学んでいるだけでこれを把握するように見えることはできません。いくつかの指導を感謝します!ここでDataGridにJSONファイルをシリアライズ
は私の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>
は私のバックエンドです:
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; }
}
そしてここでは、私のテスターJSONファイル形式です:
{
"projectNumber": "100",
"projectName": "sample",
"Directory1": "x",
"Directory2": "x",
"Directory3": "x"
},
{
"projectNumber": "101",
"projectName": "sample 2",
"Directory1": "x",
"Directory2": "x",
"Directory3": "x"
},
MainWindowのDataContextをViewModelクラスのインスタンスに設定することを忘れないでください。 – Clemens
皆さんのご意見は皆様のご協力とご協力を得て大変助けになりました。 JustinはMVVMへの私の紹介だったので、ViewModelクラスのようにコードを指定してくれてありがとう。あなたが取り組んでいるものに当てはまるときは、いつでももっと学びやすくなります! – ctalley5
それが成功した場合は、それをanswer :-)としてマークしてください。 –