Альтернатива «ShowDialog / DialogResult» в Silverlight - PullRequest
3 голосов
/ 08 ноября 2010

В WPF я часто использовал такую ​​конструкцию:

SomeChildWindow dlg = new SomeChildWindow();
dlg.ShowDialog();
...
//child window is closed either by "this.DialogResult = true;" or just by "Close();"    
//and in Parent window after Child window is closed we can use condition based on that
...

   if (dlg.DialogResult == true)
        {
           //do something
        }

Но в Silverlight этот подход не работает.

Какая альтернатива в Silverlight для этого? Я имею в виду, как предполагается получить обратную связь от дочернего окна в Silverlight?

Ответы [ 2 ]

8 голосов
/ 08 ноября 2010

Вы можете сделать это, обработав событие закрытия:

SomeChildWindow dlg = new SomeChildWindow();

dlg.Closed += (s, eargs) =>
{
   if(dlg.DialogResult == true)
   {
      //do something
   }
};

dlg.Show();
5 голосов
/ 08 ноября 2010

Silverlight не поддерживает полностью модальные диалоги, что препятствует традиционному подходу для проверки результатов диалога.Вместо этого вам нужно назначить обработчик событий для диалога, который будет обрабатывать результат диалога.Событие ChildWindow.Closed.

Затем вы можете получить ChildWindow.DialogResult в этом обработчике события для соответствующей обработки.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...