c# - UWP 访问现有页面实例

标签 c# class uwp navigation instance

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

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

我现在的问题是,如何在我的 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 类的实例传递给需要它的类的构造函数。

感谢大家

最佳答案

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

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

关于c# - UWP 访问现有页面实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49171630/

相关文章:

c# - 我们可以从构造函数访问属性吗

c++ - 如何将 vector 添加到我的结构中以创建一个库存系统,在该系统中我可以仅使用一个结构将多种不同的 Wine 添加到系统中?

c# - UWP ToggleButton 图像取决于 IsChecked

c# - linq to sql左连接,需要检查右表是否为空

c# - 异步读取文件的正确方法

c# - Process.Start() 的替代方法

javascript - Javascript 扩展和包含中的 Odoo 差异

java - 在 Java 中导入自定义类,使用命令行

c# - 以不同字体书写的字符串

c# - sbyte[] 的 AsBuffer()?