Laden...

UWP App - Für statische Methode ist ein Objektverweis verantwortlich

Erstellt von Robert2305 vor 6 Jahren Letzter Beitrag vor 6 Jahren 1.852 Views
R
Robert2305 Themenstarter:in
2 Beiträge seit 2017
vor 6 Jahren
UWP App - Für statische Methode ist ein Objektverweis verantwortlich

Hallo zusammen,
ich (Programmieranfänger) habe eine kleine Konsolenanwendung zur Berechnung verschiedener Werte beim Fotografieren geschrieben. So weit, so gut. Da das ziemlich unkompliziert ging, habe ich mich drangemacht, eine einfache UWP App zu basteln mit gleicher Funktionalität nur halt komfortabler zu nutzen durch Eingabefelder. Allzu weit bin ich aber nicht gekommen, da ich seit zwei Tagen versuche, einen Compilerfehler
CS0120
zu beseitigen. Die angegebene Seite aus der C# Referenz von Microsoft hilft mir leider nicht weiter.

Codeausschnitte:

   
public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            this.InitializeComponent();
        }

        private void ComboBoxBerechnungswert_SelectionChanged(object sender, SelectionChangedEventArgs e)
        {
            //TextBlockErgebnis.Text = "HalloWelt"; 
        }

        private void ButtonBerechnen_Click(object sender, RoutedEventArgs e)
        {
            TextBlockErgebnis.Text = "Hallo Welt";
        }
    }


            <ComboBox x:Name="ComboBoxBerechnungswert" SelectedIndex="0" SelectionChanged="ComboBoxBerechnungswert_SelectionChanged">
                <ComboBoxItem Content="Belichtungszeit"/>
                <ComboBoxItem Content="Blendenzahl"/>
            </ComboBox>
            <Button x:Name="ButtonBerechnen" Content="Berechnen" Click="ButtonBerechnen_Click" />
            <TextBlock x:Name="TextBlockErgebnis"/>

Ich frage mich jetzt nur, warum ich beim (jetzt auskommentierten) Code für die Auswahländerung der ComboBox diesen Fehler bekomme, bei dem für das Klicken des Buttons aber alles tadellos funktioniert...

1.029 Beiträge seit 2010
vor 6 Jahren

Hi,

im Prinzip recht einfach - wenn du dir den Designer-Code anschauen würdest wäre es offensichtlich.

Die Komponenten werden initialisiert (durch deinen Konstruktor) - dabei wird bevor die TextBox initialisiert wurde - das SelectionChanged-Event ausgelöst und es knallt.

Die einfachste Variante da drumherum zu kommen ist das SelectionChanged-Ereignis selbst zu abonnieren - und zwar nach dem Aufruf von "InitializeComponent".
(Und ebend das Ereignis-Abonnement wie's im Designer eingestellt wurde entsprechend zu entfernen)

LG

R
Robert2305 Themenstarter:in
2 Beiträge seit 2017
vor 6 Jahren

Danke! Jetzt funktionierts.