【发布时间】:2019-05-14 06:24:54
【问题描述】:
我正在编写一个 Xamarin 应用程序。在 App.Xaml.cs 中,我公开了一些事件。 我设置了这样的主页:
var nav = new NavigationPage(new MainPage());
MainPage = nav;
然后我从主页推送另一个页面:
void DevicePictureBox_Click(object sender, EventArgs args)
{
Image imse = (Image)sender;
String NameofDevice =
devicesHandlesDictionary_byDevicepictureID[imse.Id].Name;
var p = new DevicesPage(NameofDevice);
Navigation.PushAsync(p);
DevicesPage 订阅了一个事件(从 App 公开)。 沿着代码设置一些 Debug.WriteLine 我发现当导航回 MainPage(按返回箭头或使用 Navigation.PopAsync())时,DevicesPage 仍然处于活动状态。 此外,当我再次导航到 DevicesPage 时,代码会执行两次(输出窗口中的 Degug.WriteLine 字符串出现两次),如果我继续前进和前进,则会执行 3、4、5 次等。似乎每次都会创建一个新页面,而前一个页面仍然在后台运行。 我知道应该取消订阅事件(在这种情况下应该在哪里完成)。同样令我困惑的是,代码似乎仍在导航回的页面中运行。如何删除页面?
【问题讨论】:
标签: xamarin events navigation