Ich habe ein MVVM C# -Projekt, das über eine Schaltfläche in einem Formular verfügt, das einige Verarbeitung durchführt. Es dauert ein paar Sekunden, um die Verarbeitung durchzuführen, und das ist in Ordnung. Es gibt ein zugeordnetes Textfeld, in dem ich die Hintergrundfarbe während der Verarbeitung ändern möchte. Ich habe versucht, dies ohne Erfolg zu tun.Ändern der TextBox-Farbe in einer Methode
Ich habe die Hintergrundfarbe für das Textfeld, das an eine Eigenschaft gebunden ist, die ich am Anfang der Methode ändere, die von der Schaltfläche aufgerufen wird (über eine Befehlsbindung). Die Methode führt die Arbeit durch und setzt dann die Hintergrundfarbe auf die Standardfarbe zurück. Wenn Sie auf die Schaltfläche klicken, wird keine Änderung auf dem Bildschirm angezeigt.
Ich habe versucht, den Farbwechsel-Code in einen Dispatcher zu setzen, um es auf dem GUI-Thread zu erreichen, aber das funktioniert immer noch nicht.
Ich bin jetzt verwirrt. Wie kann ich die Farbe richtig ändern?
private void SwitchRuns()
{
try
{
// Bound property (set up with Notification correctly)
//
CurRunTextBoxColor = Colors.Red;
UIServices.SetBusyState(true); // sets cursor to wait
...
Processing code
...
CurRunTextBoxColor = Colors.LightGreen;
}
catch (Exception exp)
{
log.Error("Exception in SwitchRuns" + exp);
}
}
Was die Bindung aussehen wie für den Hintergrund Ihrer TextBox tut? – Bijington
Blockierst du den Gui-Thread während der Codeverarbeitung? – lokusking