在另一个页面上运行代码的外部类

时间:2018-02-24 08:31:18

标签: c# class uwp

我想为按钮点击事件创建一个参考,该事件发生在UWP项目的另一个页面上。

第一页(女巫按钮):

private void Button_ItemClick(object sender, ItemClickEventArgs e)
{
    // some code to reference to class
}

类(在外部文件中)

public static void DoSomething()
{
   // Do something on Page 2 or run void on page 2
}

1 个答案:

答案 0 :(得分:2)

如果方法是static,则可以在没有该类实例的情况下调用它。假设该方法在类OtherPage中定义。然后你可以这样做:

private void Button_ItemClick(object sender, ItemClickEventArgs e)
{
    OtherPage.DoSomething();
}

如果该方法不是static,则您无法轻易做到这一点,因为在您只有一个导航Page的情况下,在给定时间内存中只有一个Frame实例。将该方法放入一个具有单例实例的服务类中是有意义的,您可以从任何地方调用它。您可以使用MVV框架(如MvvmLight或MvvmCross)来简化此操作。这些框架还维护页面的导航堆栈及其视图模型,以便您可以访问导航后台中的视图模型实例。