微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

c# – Silverlight中的“ShowDialog / DialogResult”替代方案

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中的子窗口获得反馈?

解决方法:

Silverlight不支持完全模态对话框,这会阻止传统方法检查对话框结果.相反,您需要将事件处理程序分配给将处理对话结果的对话框.活动是ChildWindow.Closed.

然后,您可以在该事件处理程序中获取ChildWindow.DialogResult以相应地处理它.

private void OnDialogClosed(object sender, EventArgs args)
{
   var window = (ChildWindow)sender;
   if (window.DialogResult ?? false)
   {
   }
   else
   {
   }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐