Jak przekazać właściwości z klasy do innych klas, nie tworząc nowego obiektu?

0

Witam, wiem że było sporo takich tematów na forum. Kilka przeczytałem ale dalej nie mogę znaleźć odpowiedniego rozwiązania dla mnie.

Chodzi o to że chciałbym mieć dostęp do właściwości klasy Profile z innych klas tudzież Form

Klasa Profile

public class Profile
    {
        public string NameAttribute { get; set; }
        public string Name { get; set; }
        public int Age { get; set; }
        public string Country { get; set; }
    } 

Form1

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

        Form2 form = new Form2();

       
//DODAWANIE NOWEGO POJAZDU -> naciśnięcie przycisku otwiera Form2
        private void button1_Click(object sender, EventArgs e)
        {
            form.ShowDialog();
        }
    }

Form2

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

        List<Profile> profiles = new List<Profile>();

//DODAWANIE NOWEGO POJAZDU poprzez utworzenie nowego profilu        
        private void button1_Click(object sender, EventArgs e)
        {
            profiles.Add(new Profile
            {
                NameAttribute = textBox1.Text,
                Name = textBox2.Text,
                Age = Convert.ToInt32(textBox3.Text),
                Country = textBox4.Text
            });
        }
    } 

Chciałbym np. W Form1 móc przypisać wartość właściwości z klasy Profile do np jakiegoś label, jak uzyskać dostęp do tych danych ?
Zawsze jak próbowałem jakkolwiek to przesłać to miałem wyjątek "Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu"

@somekind podrzuciłbyś jakiś pomysł jak to zrobić?, bo już się poddałem i więcej nie nawojuje :/

0

Nikt nie ma żadnego pomysłu jak to zrobić ? Nie jestem mistrzem w programowaniu obiektowym. Zawsze miałem problem z przekazywaniem informacji, sporo czytałem na ten temat, sporo też się bawiłem ale jak przyjdzie co do czego to mam problem :/
Dziedziczenie tutaj chyba odpada, klasa statyczna chyba też odpada, jak przesyłałem jakoś informacje przez konstruktor to tak jak pisałem zawsze miałem wyjątek "Odwołanie do obiektu nie zostało ustawione na wystąpienie obiektu", ale pewnie po prostu robię coś źle nie wiem już.

0

Nie wiem co chcesz zrobić.

Do właściwości obiektu klasy Profile masz dostęp z każdego miejsca, bo właściwości te są publiczne.

2

w Form2 zrob sobie property w stylu

public List<Profile> Profiles 
{
get 
{
    return profiles;
}
}

w Form1 bedziesz mogl uzyskac do tego do tego np. tak:

label.Text = form.Profiles[0].Name;//obsluge pustej listy napisz juz sobie sam ;)
0

@katelx a mialbys jakiś pomysl jak uzyskać dostęp do mojej listy List<Profile> profiles jezeli utworze sobie nowa Forme? Bo teraz nie mogę juz utworzyc nowego obiektu Form2 bo juz go utworzylem w Form1, a chciałbym w nowej Formie wyświetlić informacje z mojej listy.

Edit: udało mi się zrobić to przez konstruktor także przepraszam za zawracanie głowy, jednak jeszcze jakbyś miał jakąś rade na przyszłość dla mnie to chętnie przeczytam :)

1 użytkowników online, w tym zalogowanych: 0, gości: 1