Silverlight confirmar cuadro de diálogo para pausar hilo

Estoy tratando de hacer un diálogo de confirmación usando SilverlightChildWindow objeto.

Idealmente, me gustaría que funcione comoMessageBox.Show(), donde toda la aplicación se detiene hasta que se recibe una entrada del usuario.

Por ejemplo:

for (int i = 0; i < 5; i++)
{
    if (i==3 && MessageBox.Show("Exit early?",
        "Iterator", MessageBoxButton.OKCancel) == MessageBoxResult.OK)
    {
        break;
    }
}

Detendría la iteración a 3 si el usuario pulsa OK ...

Sin embargo, si tuviera que hacer algo a lo largo de las líneas:

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;
    }
  }
}

Esto claramente no funcionaría, ya que el hilo no se detiene ...confirm.DialogResult.HasResult sería falso, y el bucle continuaría más allá de 3.

Solo me pregunto, ¿cómo podría hacer esto correctamente? Silverlight es de un solo hilo, así que no puedo simplemente poner el hilo en reposo y luego despertarlo cuando esté listo, así que me pregunto si hay algo más que la gente pueda recomendar.

He considerado invertir la lógica, es decir, pasar las acciones que quiero que ocurran a los eventos Sí / No, pero en mi caso específico esto no funcionaría.

¡Gracias por adelantado!

Respuestas a la pregunta(3)

Su respuesta a la pregunta