从子页面通知父页面

时间:2019-04-15 07:44:18

标签: c# uwp

我正在使用UWP构建应用程序,并且我拥有MainPage.cs,其中包含一个Frame控件,可在其中加载不同的子页面。我想将一个侦听器传递给子页面,以通知我的父页面有关子事件的事件。在android上,我将传递一个回调侦听器,该子侦听器必须在子页面中触发,这样我才能在parentl中得到通知。这里的问题是页面已启动Frame.Navigate(typeOf(LoginPage)),但无法为其设置回调因为登录页面不是引用/对象,而是类型类。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:0)

似乎MainPage是一个单例实例。在这种情况下,您可以通过在static MainPage Instance中创建一个MainPage属性并将其设置在其构造函数中来公开该实例。然后,您可以直接从任何其他页面访问MainPage

然而,正确的解决方案是使用MVVM框架,而不是在视图之间进行通信,而直接将通信置于视图模型内。在MVVM中,通常有一种导航服务,它允许传递参数/返回值,并且还可以有一个 event aggregator 引发其他组件可以订阅的消息。 MVVM框架的好例子是MvvmCross,MvvmLight和Prism。绝对值得早日学习使用和集成它们,因为从长远来看,这将使您的生活大大简化代码维护。