Wie kann ich eine kontinuirliche Abfrage in C# mit Visual Studio ohne Buttons etc starten?

1 Antwort

https://mycsharp.de/wbb2/thread.php?threadid=118261

Es geht zwar auch ohne MVVM und DataBinding, aber damit machst Du es dir nur unnötig schwer.

Es ist dann keine kontinuierliche Abfrage, stattdessen würde das ViewModel die View informieren, wenn sich ein Wert geändert hat. Bei WPF läuft das über das PropertyChanged-Event.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Nikolai1997 
Fragesteller
 08.06.2020, 10:00

Danke für deine Hilfe, leider kommt ich trotzdem nicht ganz weiter. Im Folgenden wäre mein Code, mit dem ich in Abhängigkeit der Auswahl der Combobox eine Zahl in das Feld single_counter schreiben möchte. der button ist dazu da, jede zahl um +1 zu erhöhen. drücke ich auf den buttonzur erhöhung der zahl um +1, wird die neue zahl jedoch nicht gleich angeziegt/aktualisiert, genau das möchte ich aber (ohne Button events,.)

namespace Display

{

   /// <summary>

   /// Interaktionslogik für MainWindow.xaml

   /// </summary>

   public partial class MainWindow : Window

   {

       public MainWindow()

       {

           InitializeComponent();

       }

       int[] a = new int[] { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12 };

       private void TextBox_TextChanged1(object sender, TextChangedEventArgs e)

       {

       }

       private void TextBox_TextChanged3(object sender, TextChangedEventArgs e)

       {

       }

       private void change(object sender, EventArgs e)

       {

           if (combobox.Text == "Mitarbeiter 1") single_counter.Content = Convert.ToString(a[0]);

           if (combobox.Text == "Mitarbeiter 2") single_counter.Content = Convert.ToString(a[1]);

           if (combobox.Text == "Mitarbeiter 3") single_counter.Content = Convert.ToString(a[2]);

           if (combobox.Text == "Mitarbeiter 4") single_counter.Content = Convert.ToString(a[3]);

           if (combobox.Text == "Mitarbeiter 5") single_counter.Content = Convert.ToString(a[4]);

           if (combobox.Text == "Mitarbeiter 6") single_counter.Content = Convert.ToString(a[5]);

           if (combobox.Text == "Mitarbeiter 7") single_counter.Content = Convert.ToString(a[6]);

           if (combobox.Text == "Mitarbeiter 8") single_counter.Content = Convert.ToString(a[7]);

           if (combobox.Text == "Mitarbeiter 9") single_counter.Content = Convert.ToString(a[8]);

           if (combobox.Text == "Mitarbeiter 10") single_counter.Content = Convert.ToString(a[9]);

           if (combobox.Text == "Mitarbeiter 11") single_counter.Content = Convert.ToString(a[10]);

           if (combobox.Text == "Mitarbeiter 12") single_counter.Content = Convert.ToString(a[11]);

           int b = a[0] + a[1] + a[2] + a[3] + a[4] + a[5] + a[6] + a[7] + a[8] + a[9] + a[10] + a[11];

           counter.Text = Convert.ToString(b);

       }

       private void button_Click(object sender, RoutedEventArgs e)

       {

           int b;

           for(b=0; b<12; b++)

           {

               a[b] = a[b] + 1;

           }

       }

   }

}

0
Palladin007  08.06.2020, 10:11
@Nikolai1997

Lies den Artikel, den ich verlinkt habe.

Das, was Du da programmiert hast, ist das exakte Gegenteil von dem, wie es eigentlich sein sollte.

0