我正在开发一个带有 NavigationView
的 UWP 应用,用于在 Page
之间导航。
一个ConnectionPage
用于打开和管理一个socket连接,所以有SendCommand
和Receive
等方法。其他 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/