2017-12-04 12 views
0

私のAlbumクラスのインスタンスをTextBoxesからList<Album>に、次にWindowsフォームのListBoxに追加する方法がわかりません。インスタンスをリストに追加してからウィンドウのリストボックスに追加する方法

これまでに書いたコードはここにありますが、私はここにこだわっていますし、次に何をすべきか分かりません。

public partial class Form1 : Form 
{ 
    public Form1() 
    { 
     InitializeComponent(); 
    } 

    List<Album> AlbumList = new List<Album>(); 

    private void TrackButton_Click(object sender, EventArgs e) 
    { 
     addTracks settingsForm = new addTracks(); 
     settingsForm.ShowDialog(); 
    } 

    private void CreateButton_Click(object sender, EventArgs e) 
    { 
     Album g = new Album (ASINtextBox.Text, AlbumNametextBox.Text, ArtisttextBox.Text, 
      ReleaseDatePicker.Text, LabeltextBox.Text, ImagetextBox.Text); 

     AlbumList.Add(g); 
    } 
} 

私はエラーがありません。プログラムをデバッグしているときに新しいリストを作成していないと思います。

これは、クラスのコードです:

eclass Album 
{ 
    private string ASIN; 
    private string AlbumName; 
    private string Artist; 
    private string ReleaseDate; 
    private string Label; 
    private string Image; 

    public Album(int ASIN) 
    { 
     this.ASIN = "no value"; 
     this.AlbumName = "no value"; 
     this.Artist = "no value"; 
     this.ReleaseDate = "no value"; 
     this.Label = "no value"; 
     this.Image = "no value"; 
    } 

    public Album(string ASIN, string AlbumName, string Artist, string ReleaseDate, 
     string Label, string Image) 
    { 
     this.ASIN = ASIN; 
     this.AlbumName = AlbumName; 
     this.Artist = Artist; 
     this.ReleaseDate = ReleaseDate; 
     this.Label = Label; 
     this.Image = Image; 
    } 

    public string aSIN 
    { 
     get { return this.ASIN; } 
     set { ASIN = value; } 
    } 

    public string albumName 
    { 
     get { return this.AlbumName; } 
     set { AlbumName = value; } 
    } 

    public string artist 
    { 
     get { return this.Artist; } 
     set { Artist = value; } 
    } 

    public string createDate 
    { 
     get { return this.ReleaseDate; } 
     set { ReleaseDate = value; } 

    } 

    public string label 
    { 
     get { return this.Label; } 
     set { Label = value; } 
    } 

    public string image 
    { 
     get { return this.Image; } 
     set { Image = value; } 
    } 
} 
+1

どのようなエラーが表示されますか? –

+0

あなたのアルバムクラスのプロパティは何ですか? –

+0

何が問題なのですか?すでに新しいアルバムを作成して、それを 'CreateButton_Click'イベントのリストに追加しているようです。 –

答えて

0

さて、あなたはいくつかの異なるオプションを持っているが、最も簡単にはこのようなものです:

private void RefreshListBox() 
{ 
    myGuiListBox.Items.Clear(); 
    foreach(Album loopAlbum in this.AlbumList) 
    { 
     myGuiListBox.Items.Add(loopAlbum.ToString()); 
    } 
} 

...その後、リストボックスを変更するものがあれば(例えば、新しいアルバムを作成してリスト<に追加するなど)、単にRefreshListBox()関数を呼び出すだけです。

+0

フォームをリストボックスに接続する方法はありますか?申し訳ありませんが、私はちょうどC#を初めて使っていて、何をすべきかわからないので混乱することがあります。 –

0

私はリストボックスに追加せず、ラベルに値を表示するだけでリストボックスを解決しました。

private void ShowAlbumsButton_Click(object sender, EventArgs e) 
    { 
     int temp = AlbumList.Count(); 
     string talbumname = ""; 
     string talbumasin = ""; 
     string talbumartist = ""; 
     string talbumrelease = ""; 
     string talbumlabel = ""; 
     for (int n =0; n<temp;n++) 
     { 
      talbumname = talbumname + AlbumList[n].albumName; 
      talbumname = talbumname + '\n'; 

      talbumasin = talbumasin + AlbumList[n].aSIN; 
      talbumasin = talbumasin + '\n'; 

      talbumartist = talbumartist + AlbumList[n].artist; 
      talbumartist = talbumartist + '\n'; 

      talbumrelease = talbumrelease + AlbumList[n].createDate; 
      talbumrelease = talbumrelease + '\n'; 

      talbumlabel = talbumlabel + AlbumList[n].label; 
      talbumlabel = talbumlabel + '\n'; 

     } 
     label8.Text = talbumname; 

     label7.Text = talbumasin; 

     label9.Text = talbumartist; 

     label10.Text = talbumrelease; 

     label11.Text = talbumlabel; 
    } 

ありがとうございました。

関連する問題