Caixa de diálogo Confirmar do Silverlight para pausar o thread

Estou tentando fazer uma caixa de diálogo de confirmação usando o SilverlightChildWindow objeto.

Idealmente, eu gostaria que funcionasse comoMessageBox.Show(), onde o aplicativo inteiro pára até que uma entrada seja recebida do usuário.

Por exemplo:

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

Pararia a iteração em 3 se o usuário clicar em OK ...

No entanto, se eu fizesse algo do tipo:

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

Isso claramente não funcionaria, pois o segmento não é interrompido ...confirm.DialogResult.HasResult seria falso e o loop continuaria além das 3.

Só estou me perguntando, como eu poderia fazer isso corretamente. O Silverlight é de rosca única, então não posso colocar o fio no modo de suspensão e depois acordá-lo quando estiver pronto, por isso estou me perguntando se há mais alguma coisa que as pessoas possam recomendar?

Eu considerei reverter a lógica - ou seja, passar as ações que quero que ocorram para os eventos Sim / Não, mas no meu caso específico isso não funcionaria.

Desde já, obrigado!

questionAnswers(3)

yourAnswerToTheQuestion