我想为按钮点击事件创建一个参考,该事件发生在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
}
答案 0 :(得分:2)
如果方法是static
,则可以在没有该类实例的情况下调用它。假设该方法在类OtherPage
中定义。然后你可以这样做:
private void Button_ItemClick(object sender, ItemClickEventArgs e)
{
OtherPage.DoSomething();
}
如果该方法不是static
,则您无法轻易做到这一点,因为在您只有一个导航Page
的情况下,在给定时间内存中只有一个Frame
实例。将该方法放入一个具有单例实例的服务类中是有意义的,您可以从任何地方调用它。您可以使用MVV框架(如MvvmLight或MvvmCross)来简化此操作。这些框架还维护页面的导航堆栈及其视图模型,以便您可以访问导航后台中的视图模型实例。