2

这是一个基本过程,我在 Google 或 Kindle 帐户上的参考书中找不到任何信息。

在 Windows 8 之前的常规表单应用程序中,如果您使用的是表单 2,并且想要更新表单 1 上的内容,您只需键入:

form1.Default.controlOnForm1.text = "updated text";

这在 Windows 8 中不起作用。

谢谢你。

更新:当数据绑定不能满足我的需要时,我找到了一种简单的方法。我只是创建了我需要访问的控件的静态副本。说 page2 上的 Button1 需要在 page1 上访问。

在顶部声明:

public static Button statButton1;

在加载的事件中,我在 XAML 代码中创建了静态副本和按钮之间的关系:

statButton1 = Button1;

然后像馅饼一样简单,您可以在任何地方访问该按钮:

page2.statButton1.Width = 48;
4

1 回答 1

2

Windows 8 应用程序(或任何其他基于 XAML 的应用程序)通常使用 MVVM 模式制作。我真的建议你阅读它并做同样的事情。这种模式导致应用程序中的耦合更少,并且更容易开发和维护。

您在此处讨论的更改类型将通过在 ViewModel (VM) 上设置一个属性来完成,该属性反过来用 a 通知 View (UI),PropertyChangedEvent以便它可以自行刷新。

为了允许 ViewModel 设置彼此的属性,它们都需要彼此了解,这反过来又会导致高度耦合。这通常通过使用EventAggregatoror来解决,MessageBus它基于订阅/发布模式在对象之间发送消息/事件(它们彼此不知道)。

首先,我会看看An Address Book Application Made in MVVM for Metro。这是一个基本示例,展示了此模式在没有任何框架的情况下的用法。

一旦您对 MVVM 模式感到满意,我建议您使用像Caliburn.MicroMVVM Light这样的框架。这些框架为使用 MVVM 模式构建应用程序提供了很多很棒的东西。

于 2012-11-07T19:53:03.273 回答