【发布时间】:2012-05-16 18:13:27
【问题描述】:
我正在编写此方法来跟踪页面上是否发生更改,以便用户可以触发依赖系统的重新加载。因此,当用户尝试离开页面时,您可以看到触发器。如果 e.Cancel 不存在,则行为似乎很好,异步 Web 服务调用按预期发生,但我不确定后面到底发生了什么。
重新加载按钮单击方法会触发一系列事件,这些事件通常会更新显示,但由于用户已离开页面,因此组件不再可见。这会给应用程序带来问题吗?我是否应该强迫用户留在同一页面上以防止可能出现的回调问题?
protected override void OnNavigatingFrom(NavigatingCancelEventArgs e)
{
base.OnNavigatingFrom(e);
if (hasDataBeenModified)
{
if (System.Windows.Browser.HtmlPage.Window.Confirm("You have not reloaded the policies\nDo you want to do it now?"))
{
//e.Cancel = true;
ReloadButton_Click(null, null);
}
}
}
【问题讨论】:
-
如果您担心它们退出页面,您是否尝试过覆盖 OnBackKeyPress 方法。
-
你是说当我点击后退按钮时,我之前的页面状态恢复了吗?所以当我回击时,我不会再次运行构造函数?
-
你可以重写 OnBackkeyPress 方法,如果你取消,页面上的任何内容都不会改变,页面本身仍然存在
标签: c# silverlight events event-handling navigation