Wie kann ich eine kontinuirliche Abfrage in C# mit Visual Studio ohne Buttons etc starten?
Hallo,
Ich möchte in einem Textfeld Zahlen, welche sich ständig ändern, wiedergeben.
Allerdings ändern sich die Zahlen erst dann, wenn man auf einen Button klickt.
Ziel ist es jedoch, dass sich die Zahl im Textfeld sofort ändern, wenn sich die Zahl ändert.
Leider bin ich Neuling in WPF/C# und weiß nicht, wie genau ich das machen soll, es müsste ja eine kontinuirliche Abfrage sein, ich habe die Ausgabe der Zahl in die Textbox aktuell in der Methode private void button(object sender, RoutedEventArgs e),
da ich nicht weiß, wohin sonst damit
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.
Lies den Artikel, den ich verlinkt habe.
Das, was Du da programmiert hast, ist das exakte Gegenteil von dem, wie es eigentlich sein sollte.
damit komme ich nicht ganz weiter, aber danke.
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;
}
}
}
}