问题标签 [eventaggregator]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1021 浏览

c# - 将 EventAggregator(或其他东西 - 也许是 IoC)与 MEF 一起使用

我目前正在构建一个 MEF 项目,以便我可以学习如何在实际应用中使用它。我已经成功导入了一个 DataHandler 模块来提供数据库连接和其他集中的数据库操作。

现在我正在考虑一种为其他导入模块提供方法的方法。例如,如果安全模块需要与数据库的连接,它就能够请求数据库连接。现在,我有一种方法可以让模块检测 DataHandler 是否可用,因为 Host 应用程序将其公开。所以我想知道是否有一种方法可以使用EventAggregator来发布一种类型的事件,其中订阅者(安全模块)只需触发一个事件并获得一个DbConnection对象作为回报。

如果 EventAggregator 是答案,我可以使用一些提示来说明如何。请记住,我仍在研究......不仅仅是要求teh codez。如果有更好的解决方案,我对选项感兴趣。

我目前正在查看Denis Vuyka的这篇文章

编辑

EventAggregator 看起来可能不是正确使用的工具。我可以在我的主机应用程序中实现某种松散耦合的消息传递吗?服务定位器或命令模式是否可以实现?

0 投票
1 回答
1628 浏览

events - Caliburn.Micro 和事件聚合器 - 不需要的调用句柄方法

我在 2 个屏幕之间发布/处理消息时遇到一个问题。

我的情况是:

  1. 信使屏,是主屏,在聊天屏上发布,都是从屏。带有来自服务器的消息的 Messenger 视图模型句柄。

  2. 聊天屏幕可以在信使屏幕上发布消息。信使视图模型在服务器上发送此消息。

Messenger 类如下所示:

从屏类如下所示:

我的问题是:

第一个问题是:

  • 我从 ChatViewModel 类中调用方法 SendRp。
  • 它在 ChatViewModel 中调用方法 void Publish(),
  • 然后是从类 MessengerViewModel 调用方法 void Handle()
  • 然后还从 ChatViewModel 类调用方法 void Handle()。

我不想在 ChatViewModel 类中调用方法 Handle()。为什么如果我从 ChatViewModel 向 MessengerViewModel 发送消息在 ChatViewModel 类中也称为方法 Handle?

我的第二个问题是:

我想仅在某些从属屏幕上从 MessengerViewModel 消息发布。

MessgerVieModel 有队列消息:{msg1, msg2, msg3, ..., msgN}

我想发布:

  • 从屏幕 #1 上的 msg1。
  • 从屏幕 #2 上的 msg2
  • ...
  • 从屏幕 #3 上的 msg3
0 投票
2 回答
259 浏览

c# - 如何在 where 子句中使用泛型创建泛型方法?(这个人一清二楚!)

有没有办法做到这一点:

不需要用户指定TPayload参数?

0 投票
4 回答
8532 浏览

mvvm - ViewModel 到 ViewModel 的通信

鉴于以下情况:

  1. ViewModelA 启动 ViewModelB(当然,通过一个通用控制器,它使用 Ioc 和 DI 来解析所需的类型)。
  2. ViewModelB 需要在 ViewModelA 中设置一个属性值。

通过构造函数注入将 ViewModelA 简单地注入 ViewModelB 并直接设置属性是不是很糟糕?

或者……</p>

是否应该使用像 Prism 的 EventAggregator 这样的消息系统来处理 ViewModel 之间的所有通信?

我喜欢注射方法,因为它很简单,但我的直觉告诉我我错过了一些东西。我呼吁你们的集体智慧来帮助填补我的盲点。

0 投票
3 回答
1941 浏览

wpf - 应该如何将事件从一个 ViewModel 传播到 MVVW 中的另一个 ViewModel?

我是 MVVW 模式的新手,所以如果我问的是一个非常基本的问题,请原谅我。

我有两个 ViewModel,我们称它们为 TreeViewViewModel 和 ListViewViewModel。TreeViewViewModel 绑定到其视图中的 IsSelected 属性。每当 IsSelected 发生变化时,我需要通知 ListViewViewModel 以便它可以更新它的视图。

经过一些在线研究,我遇到了 EventAggregator ,它看起来可能是一个很好的解决方案。

这是正确的解决方案吗?如果是这样,我应该如何实施呢?或者,是否有更好的解决方案我应该考虑?下面是我认为 EventAggregator 可能如何集成到发布事件的 ViewModel 中的简化版本。

0 投票
2 回答
1608 浏览

wpf - Rhino Mocks 和 PRISM EventAggregator

我需要做一些看起来很简单的事情,但我似乎无法实现。

我需要能够编写一个单元测试来调用任何订阅事件标记聚合器事件的操作和过滤委托。

例如,在我需要测试的类中,我有以下代码:

我希望我的测试调用this.OnViewRequestPublished方法和this.EventFilter方法。

我尝试EventAggregator在我的测试中使用该类的一个实例,但是如果没有调度程序存在,这些事件永远不会被触发,这在单元测试中没有帮助。

因此,我想使用 Rhino Mocks,但我不知道如何实现我所需要的。

谢谢

院长

0 投票
1 回答
762 浏览

c# - 使用 Prism 事件聚合器或任何其他拦截命令的模式取消消息?

有谁知道某种方法可以取消在 Prism 事件聚合器上进一步广播消息?

我正在尝试做一些相当标准的命令/事件消息传递——让我用一个序列图来解释:

标准命令/事件消息传递架构

现在我想添加验证。验证应该拦截命令,确定它是否是要应用的有效命令,如果不是则取消其广播是有意义的。本质上,这就是我想要的: 可以进行命令验证的标准命令/事件消息传递

有谁知道如何按照以下方式做某事

还是有另一种更好的模式可以使用?

0 投票
2 回答
1286 浏览

wpf - 将选定对象发送到 WPF/Silverlight 中的另一个控件?

我正在开发一个 WPF Projet,其中我有一个带有两个用户控件的视图。这基本上是一个带有网格的用户控件和另一个带有编辑面板的用户控件,用于编辑 DataGrid 中的选定对象。编辑面板控件由用于编辑另一个控件中选定对象的属性的文本框和一个用于保存的按钮组成。我想做的是将所选对象传递给编辑面板,即每次在网格中选择一个对象时,编辑面板都会更新以选择同一个对象。最好的方法是什么,请帮忙?一个例子是超级:0)

0 投票
1 回答
3536 浏览

events - MVVM 中的事件聚合器

我使用 silverlight 和 MVVM 工作了一段时间(以最简单的形式,可以说是手工制作),但我几乎不明白什么是事件聚合器(以及如何实现它)。

这个名字背后隐藏着什么?有人可以快速解释一下(或发布链接吗?)。

0 投票
1 回答
358 浏览

c# - 使用 Prism EventAggregator 就像带有字符串事件名称的旧 CAB 事件系统

我总是看到 Prism 的 eventaggregator 并且只与 GetEvent 一起使用,这很奇怪。我习惯了旧的 CAB 事件系统 - 现在使用 Marlon Grech 的 Mediator 实现 - 我已经定义了字符串常量,如果它是简单的 int 或值类型,我不必创建额外的类来触发/包装我的数据。

我怎样才能对 Prismn 的 eventtaggregator 做同样的事情