前提・実現したいこと
Jsonファイルから読み込んで格納したデータをListBoxに表示したい
お世話になっております。
Jsonファイルからreadしたデータを宣言した配列内に格納し、xamlのListBoxで表示したいのですがデータがListBox内に表示されません。
下記でも記載しておりますが、Jsonの第1階層は表示できておりその配下の配列内のデータが表示されません。
実行した際のListBox内を押下すると、青枠が表示される状況です。
その際、出力ウインドウを確認しましたが特にエラーのようなものは出ておりませんでした。
どうしたらListBox内にデータが表示されるかご教授いただければ幸いです。
また投稿は初となりまして、文章や質問の仕方に拙い部分があるかと思いますがどうかよろしくお願いいたします。
該当のソースコード
Json読み込み、格納
C#
1MUData[] _data; 2Manager[] _managersdata; //Jsonデータを格納するbox 3 4private void OpenButton_Click(object sender, RoutedEventArgs e) 5 { 6 var dialog = new OpenFileDialog(); 7 dialog.Filter = "json|*.json"; 8 if (dialog.ShowDialog().Value) 9 { 10 var file = dialog.FileName; 11 12 try 13 { 14 var reader = new StreamReader(file); 15 var data = reader.ReadToEnd(); 16 reader.Close(); 17 _data = JsonConvert.DeserializeObject<MUData[]>(data); 18 _managersdata = JsonConvert.DeserializeObject<Manager[]>(data); 19 } 20 catch (Exception error) 21 { 22 if (error.Message != null) 23 Debug.WriteLine(error.Message); 24 } 25 26 if (_data != null) 27 { 28 NameListBox.ItemsSource = _data; 29 } 30 31 if (_managersdata != null) 32 { 33 ManagerListBox.ItemsSource = _managersdata; 34 } 35 } 36 }
クラスの宣言
C#
1 public class Manager 2 { 3 public string p_name { get; set; } 4 } 5 6 public class MUData 7 { 8 public string name { get; set; } 9 public List<Manager> manager_list { get; set; } 10 }
xaml
1<TextBlock HorizontalAlignment="Left" TextWrapping="Wrap" Text="Manager一覧" VerticalAlignment="Top" Height="25" Width="100" FontSize="18" Grid.Column="2"/> 2<ListBox x:Name="ManagerListBox"ScrollViewer.HorizontalScrollBarVisibility="Disabled" DisplayMemberPath="p_name" Grid.Column="2" />
Json
1[ 2{ 3 "name": "katsu", 4 "manager_list": [ 5 { 6 "p_name": "katsudon", 7 }, 8 { 9 "p_name": "tendon", 10 }, 11・ 12・ 13・ 14 ] 15]
問題点
画像のようにListBoxは生成されるが、Textが表示されない。
試したこと
JSONファイルのnameは表示することができました。
その配下の配列データを同様に表示しようとすると上記のような状態になります。
補足情報(FW/ツールのバージョンなど)
Microsoft Visual Studio Community 2022 (64 ビット) - Current Version 17.1.2
C#
WPF
Newtonsoft.json
回答2件
あなたの回答
tips
プレビュー