【问题标题】:How do I access MainPage class non-static members from the App class?如何从 App 类访问 MainPage 类非静态成员?
【发布时间】:2015-06-07 15:35:33
【问题描述】:

根据 MSDN 文档 https://msdn.microsoft.com/en-us/library/windows/apps/hh394038(v=vs.105).aspx,我已在空白的 Windows Phone 8.1 Silverlight 应用程序中添加了一个应用程序栏。我已将封装在 App 类中的事件处理程序添加到应用程序栏中的每个按钮。我需要一种从 App 类访问 MainPage 类的当前实例的方法,因此我可以调用 MainPage 类中的非静态方法来更新 UI。我已经狂欢了几个小时,但我还没有找到解决方案。我遇到了这个答案https://stackoverflow.com/a/13314364/3998051,但它回答的问题与我的问题有点相反。可悲的是,解决方案不是。你能帮忙吗?

【问题讨论】:

    标签: c# wpf xaml silverlight windows-phone-8.1


    【解决方案1】:

    我会使用响应式扩展 (RX) 来解决这个问题。

    您可以使用 NuGet 将反应式扩展 (RX) 添加到您的项目中,搜索 rx-main 并安装 Reactive Extensions - Main Library

    您的两个页面都将访问具有Subject<T> 的公共类。一个页面将使用OnNext 向此Subject<T> 发布事件,而另一个页面将使用Subscribe 订阅这些事件。

    有关完整的工作示例,请参阅Rx how to create a sequence from a pub/sub pattern

    【讨论】:

    • 这是面向对象编程在这类场景中常用的设计模式吗?
    • @MoonOwlPrince 这对我来说效果很好,但是如果有更好的设计模式,我很想知道!
    • 感谢您将此标记为已接受的答案。我已经用一个工作示例的链接更新了答案。
    猜你喜欢
    • 1970-01-01
    • 2018-10-05
    • 1970-01-01
    • 1970-01-01
    • 2011-04-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多