2017-04-22 1 views
0

私はあるフォームから別のフォームのリストビューにアイテムを追加していて、リストビュー内の各アイテムをJSONファイルに保存したいと思います。私はこれを行う方法を理解することができず、いくつかの場所を見てきましたが、私が使っているのと同じ方法を人々が使用しているようには見えません。ListViewItemからデータを取得する方法。 WinForms、C#

ここでは、リストビューに項目を追加するコードを示します。各ListViewItem内の各データにアクセスして、JSONファイルにすべて保存できるようにするにはどうすればよいですか?

ListView lv = (ListView)lf.Controls["mainListView"]; 
     ListViewItem lvi = new ListViewItem(); 
     lvi.Text = Data.Name; 
     lvi.Tag = Data; 
      switch (Data.Type) 
      { 
       case "Anime": 
        lvi.ImageIndex = 0; 
        break; 
       case "Book": 
        lvi.ImageIndex = 1; 
        break; 
       case "Comic": 
        lvi.ImageIndex = 2; 
        break; 
       case "Game": 
        lvi.ImageIndex = 3; 
        break; 
       case "Manga": 
        lvi.ImageIndex = 4; 
        break; 
       case "Movie": 
        lvi.ImageIndex = 5; 
        break; 
       case "Other": 
        lvi.ImageIndex = 6; 
        break; 
       case "TV": 
        lvi.ImageIndex = 7; 
        break; 
      } 
     lv.Items.Add(lvi); 

これは、このフォームの「データ」という名前のValuesクラスの情報です。

public Values Data 
    { 
     get 
     { 
      Values v = new Values(); 
      v.Name = itemNameTxt.Text; 
      v.Type = itemTypeCmb.Text; 
      v.TypeName = typeNameTxt.Text; 
      v.Status = statusCmb.Text; 
      v.Completed = completedNUD.Value; 
      v.URL = imageUrlTxt.Text; 
      v.RateOne = rating1.Checked; 
      v.RateTwo = rating2.Checked; 
      v.RateThree = rating3.Checked; 
      v.RateFour = rating4.Checked; 
      v.RateFive = rating5.Checked; 

      return v; 
     } 
     set 
     { 
      itemNameTxt.Text = value.Name; 
      itemTypeCmb.Text = value.Type; 
      typeNameTxt.Text = value.TypeName; 
      statusCmb.Text = value.Status; 
      completedNUD.Value = value.Completed; 
      imageUrlTxt.Text = value.URL; 
      rating1.Checked = value.RateOne; 
      rating2.Checked = value.RateTwo; 
      rating3.Checked = value.RateThree; 
      rating4.Checked = value.RateFour; 
      rating5.Checked = value.RateFive; 
     } 
    } 

答えて

1

あなたがTagプロパティ内ListViewItemを移植するために使用Valuesクラスのインスタンスを格納しているように見える:

lvi.Tag = Data; 

必要なときにあなたはそこからそれを抽出することができます。例:

+0

私は多くのコードをやり直してより理想的な解決策を見つけることができましたが、これを最初に試してみました。これは私の元のコードの正解です問題。ありがとう! – Kankuro

関連する問題