[c#]若要访问当前实例的首页在 Windows 应用程序商店中的最好方法?

标签: windows C#
发布时间: 2013/12/8 14:47:15
注意事项: 本文中文内容可能为机器翻译,如要查看英文原文请点击上面连接.

我想知道如何人能够从一个不同的类在 C# Windows 存储应用程序中访问的当前实例的主页面。

具体而言,在 Windows 应用商店 app 的 Surface RT 平板 (所以,限于 RT API) 我想从其他类访问首页方法和 UI 元素。

创建新的实例作品,像这样:

MainPage mp = new MainPage();
mp.PublicMainPageMethod();
mp.mainpageTextBlock.Text = "Setting text at runtime";

在这它公开的方法 / UI 元素,但这不是正确的过程。

访问方法和修改在运行时,从其他类的主页面上的 UI 元素的最佳做法是什么?有几篇文章,关于这为 Windows Phone 但我似乎无法找到任何为 Windows 室温下

解决方法 1:

如果您正在使用 MVVM,您可以使用信使类:

MainWindow.xaml:

using GalaSoft.MvvmLight.Messaging;

public MainWindow()
{
    InitializeComponent();
    this.DataContext = new MainViewModel();
    Messenger.Default.Register<NotificationMessage>(this, (nm) =>
    {
        //Check which message you've sent
        if (nm.Notification == "CloseWindowsBoundToMe")
        {
            //If the DataContext is the same ViewModel where you've called the Messenger
            if (nm.Sender == this.DataContext)
                //Do something here, for example call a function. I'm closing the view:
                this.Close();
        }
    });
}

并在您 ViewModel 中您可以调用使者,或通知您的视图的任何时间:

Messenger.Default.Send<NotificationMessage>(new NotificationMessage(this, "CloseWindowsBoundToMe"));

很容易......:)

官方微信
官方QQ群
31647020