gpt4 book ai didi

c# - 在另一个页面上更新控件 Windows 8 Metro 应用程序 C#

转载 作者:太空宇宙 更新时间:2023-11-03 11:13:37 24 4
gpt4 key购买 nike

这是一个基本过程,我在 Google 或我的 Kindle 帐户中找不到任何引用书。

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

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

这在 Windows 8 中不起作用。

谢谢。

更新:当数据绑定(bind)不能满足我的需要时,我找到了一种简单的方法来执行此操作。我只是创建了我需要访问的控件的静态副本。假设需要在 page1 上访问 page2 上的 Button1。

在顶部声明:

public static Button statButton1;

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

statButton1 = Button1;

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

page2.statButton1.Width = 48;

最佳答案

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

您在这里谈论的更改类型将通过在 ViewModel (VM) 上设置一个属性来完成,这反过来会用 PropertyChangedEvent 通知 View (UI),以便它可以刷新本身。

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

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

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

关于c# - 在另一个页面上更新控件 Windows 8 Metro 应用程序 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13276715/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com