首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >窗口或页面间的通信机制

窗口或页面间的通信机制
EN

Software Engineering用户
提问于 2020-10-16 12:30:11
回答 1查看 414关注 0票数 1

我使用C#WPF,而不使用MVVM方法。应用程序的重要组成部分之一是WindowsPagesUserControls之间的通信。在MVVM中,它们会在幕后执行,并允许您使用某种方法在不同实例之间发送或接收数据。

在后面的代码中,父窗口和子窗口只需将ParentWindow引用传递或分配给ChildWindow,就可以轻松地进行通信。使不同窗口或页面之间的通信成为可能。但我所做的是

创建一个名为Operator.cs的静态类,该类具有一个List<Window> AvailableWindows。现在,每当我们创建一个窗口时,我们都会将该实例推入List<Windows> AvailableWindows中,并在关闭窗口时从AvailableWindows中删除该实例。通过这种方式,我可以引用可用的页面或窗口,并且可以从任何地方访问它并执行任何操作,并且可以轻松地在多个实例之间进行通信。

代码语言:javascript
复制
public static class Operator
{
    public Operator()
    {
    }
    public static List<Page> AvailablePages = new List<Page>();
    public static List<Window> AvailableWindows = new List<Window>();

}  

我的问题是,如果这是一个好方法,坏还是好?或者其他的选择?

EN

回答 1

Software Engineering用户

发布于 2020-10-16 16:15:11

这真的取决于你试图通过让页面能够相互引用来完成什么。我倾向于将关注点分离开来,最终将页面编码在一起,A页延伸到窗口B,然后延伸到C页,后者延伸到A页,等等。

如果用例类似于事件,我可能会使用中介模式(https://sourcemaking.com/design_模式/中介)允许各个页面发布事件。虽然MVVM中也经常使用这种模式,但它并不依赖于MVVM。在JavaScript网络应用程序中,你似乎也有类似的想法,所以它并不是特定于技术的。

票数 2
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/418014

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档