Ich versuche, einen Bestätigungsdialog mit Silverlight ChildWindow
Objekt zu tun.Silverlight Dialog bestätigt Thema bei Pause
Im Idealfall würde ich gerne wie MessageBox.Show()
arbeiten, wo die gesamte Anwendung anhält, bis eine Eingabe vom Benutzer erhalten wird.
Zum Beispiel:
for (int i = 0; i < 5; i++)
{
if (i==3 && MessageBox.Show("Exit early?",
"Iterator", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
{
break;
}
}
Würde die Iteration bei 3 stoppen, wenn der Benutzer auf OK trifft ...
war aber wenn ich etwas entlang der Linien tun:
ChildWindow confirm = new ChildWindow();
confirm.Title = "Iterator";
confirm.HasCloseButton = false;
Grid container = new Grid();
Button closeBtn = new Button();
closeBtn.Content = "Exit early";
closeBtn.Click += delegate { confirm.DialogResult = true; confirm.Close(); };
container.Children.Add(closeBtn);
Button continueBtn = new Button();
continueBtn.Content = "Continue!";
continueBtn.Click += delegate { confirm.DialogResult = false; confirm.Close(); };
container.Children.Add(continueBtn);
confirm.Content = container;
for(int i=0;i<5;i++) {
if (i==3) {
confirm.Show();
if (confirm.DialogResult.HasResult && (bool)confirm.DialogResult) {
break;
}
}
}
Dies würde eindeutig nicht funktionieren, da der Faden nicht angehalten ... confirm.DialogResult.HasResult
falsch sein würde, und die Schleife würde vergangen 3.
Ich frage mich nur, wie ich das richtig machen könnte. Silverlight ist single-threaded, also kann ich den Thread nicht einfach in den Ruhezustand versetzen und ihn dann aufwecken, wenn ich fertig bin, also frage ich mich, ob es noch etwas gibt, das die Leute empfehlen könnten?
ich als habe die Logik umgekehrt - das heißt, die Aktionen vorbei ich auf das Ja/Nein-Veranstaltungen stattfinden soll, aber in meinem speziellen Fall wäre dies nicht ganz funktioniert.
Vielen Dank im Voraus!
Das ist ziemlich genial! Ich gebe das eine Chance und sehen, wie gut es funktioniert ... – AlishahNovin
Es kann leicht angenommen werden, um den Enumerator in einem Hintergrund-Thread ausführen, so dass eine sehr einfache Multi-Threaded UI-Workflow. – SLaks
+1. Kleiner Punkt: meinst du nicht 'YieldMethod' mit" Rendite bestätigen "? –