Entwickler-Ecke

Basistechnologien - Wert von Property auslesen


Talemantros - Di 20.01.15 19:55
Titel: Wert von Property auslesen
Hallo,
ich möchte gern ein Fenster einblenden, wo der Benutzer eine Eingabe machen soll
Das Fenster wollte ich anzeigen lassen mit:


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
AusgangsbehaelterSteuerungEingabe myEingabe = new AusgangsbehaelterSteuerungEingabe(1);
myEingabe.ShowDialog();

if (myEingabe.DialogResult == DialogResult.OK)
{
    machine = myEingabe.Machine;

    MsgAusgabe.ShowInformation(machine.ToString());                        
}


Die Ausgabe dient hier nur dem Test.

Im Aufgerufenen Fenster selber habe ich einen Button auf DialogResult = Ok gestellt und er hat eine TextBox für die Eingabe

Die TextBox soll dann die Property füllen, die ich wieder ausgeben/weiter verwenden möchte


C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
        int showMdul = 0;
        string machine = string.Empty;
       
        public AusgangsbehaelterSteuerungEingabe(int uebergabe)
        {
            InitializeComponent();
            showMdul = uebergabe;
        }

        public string Machine
        {
            get
            {
                return machine;
            }
            set
            {
                machine = txtScanfeldMaschine.Text;
            }
        }


Leider ist die Ausgabe leer.
Muss ich noch irgendwas beachten, dass der Inhalt der TextBox in der Property landet?!

Gruß
Daniel


C# - Di 20.01.15 20:18

Hallo,

Bist du dir sicher, dass dein Setter stimmt?
Zitat:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        public string Machine
        {
            get
            {
                return machine;
            }
            set
            {
                machine = txtScanfeldMaschine.Text;
            }
        }


Meiner Ansicht nach macht das nämlich wenig Sinn. Wenn du die Text Eigenschaft einer Textbox nach außen führen willst, musst du das so machen:

C#-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
        public string Machine
        {
            get
            {
                return txtScanfeldMaschine.Text;
            }
            set
            {
                txtScanfeldMaschine.Text = value;
            }
        }


Der Getter wird immer aufgerufen, wenn die Eigenschaft abgefragt (read) wird und der Setter wenn die Eigenschaft festgelegt (write) wird.
Also

C#-Quelltext
1:
myEingabe.Machine = "Jetzt wird der Setter aufgerufen"                    

ruft den Setter auf und führt den Code darin aus.
Und

C#-Quelltext
1:
string machine = myEingabe.Machine;                    

Ruft den Getter auf und führt dessen Code aus.


Talemantros - Mi 21.01.15 11:26

Hallo C#,
es ist unfassbar, wie lange ich da drüber geschaut habe ohne es zu sehen.
Vielen Dank.

Gruß
Daniel