Powoli zaczynam się wdrażać do pisania w C#, ale napotkałem problem. Byłem w lokalnym Empiku ale nie znalazłem odpowiadającej mi książki, więc bazuję na tym, co przeczytam w Internecie, dlatego również pytam się tutaj.
Najpierw ogólnie: Po otwarciu głównego okna program wczytuje na listę obiektów typu "film" dane z pliku tekstowego (to działa). Potem chcę przekazać tę listę do innego okna/formularza (co nie działa), który ma prezentować dane z tej listy, . Wygląda to tak:
W klasie Program stwiorzyłem klasę film.
public partial class film
{
public int Lp;
public string tytul;
public string rezyser;
public int rok;
public string gatunek;
public int ocena;
public string ktoma;
}
W głównym oknie aplikacji (formularz Katalog) zadeklarowałem listę obiektów typu film - ta lista nazywa się "filmy". Dalej jest otwieranie kolejnego formularza typu TabelaFilm
public partial class Katalog : Form
{
List<Program.film> filmy;
public Katalog()
{
InitializeComponent();
(...)
private void listaPlytToolDane_Click(object sender, EventArgs e)
{
TabelaFilm Tab = new TabelaFilm(this);
Tab.Owner = this;
Tab.ShowDialog();
}
}
}
Klasa TabelaFilm wygląda tak:
namespace WindowsFormsApplication1
{
public partial class TabelaFilm : Form
{
Katalog katalog;
public TabelaFilm(Katalog katalog)
{
InitializeComponent();
this.katalog = katalog;
TabelaFilmy.DataSource = katalog.filmy;
}
}
}
I właśnie w ostatniej linijce cytowanego kodu dostaję błąd " 'WindowsFormsApplication1.Katalog.filmy' is inaccessible due to its protection level". O ile rozumiem, lista "filmy" nie jest publiczna i dlatego nie mogę jej użyć w "obcym" obiekcie typu TabelaFilm. Co powinienem zmienić? Z góry dziękuję. :)