UWP 访问现有页面实例

UWP access existing page instance

我正在开发带有 NavigationView 的 UWP 应用,用于在 Page 之间导航。

一个ConnectionPage是用来打开和管理socket连接的,所以有SendCommandReceive等方法。其他 CameraPage 需要访问此方法。如果我导航到 ConnectionPage 这个 class 的一个实例是正常创建的,如果我导航到 CameraPage 这个 class 是创建的,一切都是应该的。

我现在的问题是,如何在 CameraPage 中使用 ConnectionPage 的连接和方法?

MainPage.xaml.cs导航

    private void NavView_Navigate(NavigationViewItem item) {
        switch (item.Tag) {
            case "home":
                rootFrame.Navigate(typeof(HomePage)); break;
            case "connection":
                rootFrame.Navigate(typeof(ConnectionPage)); break;
            case "camera":
                rootFrame.Navigate(typeof(CameraPage)); break;
        }
    }

我在以前的项目中的方法是将 Connection class 的实例传递给需要它的 classes 的构造函数。

感谢大家

当您从一个页面导航时,该页面将从内存中删除(只要没有任何东西保存在那里,在这种情况下您可能会发生内存泄漏)。

解决这个问题的正确方法是创建一个单独的 class,它将包含您需要的方法并且对两个页面都可用 - 它可以是 static class 或更好的单例 class (class 只有一个实例)。在任何情况下,要使单个状态对象可用于多个页面,您必须将其从页面中分离出来,放入一个新的 class.