eventaggregator相关内容
在 Caliburn.Micro 文档中,作者提到了这种可能性: 文档链接 IHandle 继承自标记接口 IHandle.这允许使用强制转换来确定对象实例是否订阅了任何事件.如果您与 IoC 容器集成,这将启用简单的自动订阅.大多数 IoC 容器(包括 SimpleContainer)都提供了一个在创建新实例时调用的钩子.只需连接容器的回调,检查正在创建的实例是否实现 IHandle
..
我决定为我正在编写的 winforms MVP 应用程序构建我自己的事件聚合器.目的是允许视图(用户控件)订阅来自模型的事件,否则模型拥有它们的视图. 问题是;既然应该有一个通用的事件聚合器,并且只有在编写应该交互的用户控件的应用程序时才需要聚合器,那么暴露事件聚合器的最佳方式是什么? 到目前为止我的建议: 我认为注入它会很麻烦,因为所有用户控件都必须有一个 IEventAggr
..
Resources.Add("eventAggregator",Container.Resolve())行;引发Null异常. 更新 我添加了所有类以解释更多信息.就像@Axemasta所说的那样,不需要注册IEventAggregator,并且我删除了注册.现在,我不介绍如何将Listview EventAggregator行为连接到EventAggregator. 这是整个App.
..
我有一个MainWindow,通过单击菜单可以在UserControl之间导航, 我正在使用以下模式: https://rachel53461.wordpress.com/2011/05/08/simplemvvmexample/ 在这些用户控件之一中,有一个按钮.通过单击此按钮,我想导航到另一个用户控件. 我该怎么做? MainView
..
我正在尝试创建不带TPayLoad的CompositePresentationEvent,它的委托是无参数的. 我希望有一个不带任何参数的全局应用程序事件,例如UserLoggedInEvent,UserGotIdleEvent等. 如何使用Prism 4.0事件聚合系统完成此操作? 解决方案 此处是一些扩展方法,致力于减少EA的冗长性.
..
作为MVVM和SOLID开发的新手,我正在开发一个小型WPF应用程序,但我意识到我的应用程序在某些方面是非常规的: 我的所有Model数据都需要通过轮询(每秒一次)或利用回调函数(例如,使用Shell钩子和Automation事件)进行非常频繁的刷新. 所有刷新的数据都需要立即推送到“视图". 视图严格是数据的显示;它没有公开任何数据突变功能. 当前,我正在使用以下标准MVVM/D
..
当尝试构建一个eventaggregator来将我的object的属性从MainViewModel转移到SectionViewModel时,我尝试了以下多篇文章( 2 , 3 和在MainViewModel我有; protected readonly IEventAggregator eventAggregator; public MainViewModel(IMainViewModel m
..
我有一个PRISM RegionManager,它具有几个区域-顶部是一个Ribbon区,下面是我的视图的主要内容区域-相当基本. 该应用程序从主要内容区域中的“主页"视图开始.单击功能区上的按钮时,我将第二个视图注入到内容区域中,并在区域管理器中导航到该区域.当我单击该视图上的按钮时,应将其删除并显示原始视图. 我目前正在使用RegionManager.Add()方法手动添加第二个视
..
我最近尝试实现自己的简单事件聚合器.我从MSDN上的事件聚合器文章中获得了很多启发.关于MSDN上的事件聚合器,我注意到一件事,即事件实际上是它们自己的类.这根本不是一件坏事.但是,我发现总是为每个小事件创建一个新的空类很尴尬. 我觉得很尴尬的原因是因为需要为每个颗粒事件创建一个类.例如,鼠标单击事件将具有double_click,single_click,left_click,right_
..
如果这是一个非常愚蠢的问题表示歉意,但是我才刚刚开始使用caliburn.micro,并且我在努力获取eventAggregator时,似乎没有任何订阅... 我不确定问题出在视图模型还是引导程序.这是视图模型: class MainWindowViewModel : Screen { private readonly IEventAggregator _eventAggreg
..
嗨,我希望你们中的一个能帮我一些语法. 因此,我正在关注以下示例 https://www.codeproject.com/Tips/591221/Simple-EventAggregator-in-WPF-PRISM 有关使用Prism Event Aggregator将消息从一个ViewModel发送到另一个ViewModel的信息. 下面的代码在发布单个字符串作为有效负载时非常有用
..
我有一个类,该类通过PRISM事件聚合器订阅事件. 由于要模仿此处那样的事件聚合器有些困难,因此 a>,我只是实例化一个真实的实例,然后将其传递给被测系统. 然后在测试中,我通过该聚合器发布事件,然后检查被测系统对该事件的反应.由于该事件将在生产期间由FileSystemWatcher引发,因此我想通过订阅UIThread来利用自动分派,因此一旦引发该事件,我就可以更新我的UI.
..
我正在努力编写一个测试,以确认关闭了EventAggregator消息后,我正确地取消了订阅.任何人都可以指出(简单的)答案吗?! 这是代码: public class ViewModel : BaseViewModel, IViewModel { private readonly IEventAggregator eventAggregator; private Su
..
我使用Composite WPF(Prism),并且试图对我的控制器确实订阅了Composite Event进行单元测试. 我的订阅代码如下... //Init Events. this.eventAggregator.GetEvent().Subscribe( ShowNodeDetails, ThreadOption.
..
我在Prism指南中一直努力工作,并认为我对他们的大多数沟通工具有所了解. 命令非常简单,因此很显然DelegateCommand仅用于将视图与其模型连接. 关于跨模块通信,特别是何时在复合命令上使用EventAggregation,还不太清楚. 例如,实际效果是相同的. 您发布活动->所有订阅者都会收到通知并执行代码以作为响应 您执行复合命令->所有已注册的命令都将被执
..
为了解决我的应用程序中的导航问题,我使用了Event Aggregator(事件聚合器),它可以解决该问题,但是又创建了另一个. 要在不同的UserControls之间导航,我使用了Rachel的代码,您可以找到在屏幕的一侧,我有一个主菜单(HomeViewModel()),通过单击在UserControl之间切换的项目,在每个UserControl中都有另一个菜单栏,可在其中切换其他Use
..
在 Caliburn.Micro 文档中,作者提到了这种可能性: 文档链接 IHandle继承自标记接口IHandle.这允许使用强制转换来确定对象实例是否订阅了任何事件.如果您与IoC容器集成,则可以进行简单的自动订阅.大多数IoC容器(包括SimpleContainer)都提供一个在创建新实例时被调用的钩子.只需连接容器的回调,检查正在创建的实例,看看它是否实现了IHandle,如
..
如果我使用诸如的某些东西b $ b eventAggregator.GetEvent()。订阅(MyMethod) 然后它一切正常,当事件被发布时,我的方法被触发。 然而,当移动到更复杂除了I字符串以外的对象我遇到了问题。 我有一堆类都来自接口(IRequest),例如 我有我的事件类设置如下 public class
..
在我的Composite WPF应用程序中,当用户双击控件时,我发布了一个事件。模块订阅该事件并在必要时执行操作。 此事件似乎随机停止工作。有时,当我运行应用程序时,我可以触发事件没有问题,其他时候,我只能触发它几次,在模块停止接收事件之前。 当我在调试器中查看CAL EventAggregator 仍然有事件,但事件没有订阅。 解决方案 事实证明,垃圾收集器删除订阅。我必须在
..
我的方案是: Messenger屏幕,它是主屏幕,在聊天屏幕上发布,它们是从屏幕。 Messenger视图模型句柄与来自服务器的消息。 聊天屏幕可以在信使屏幕上发布消息。并且messanger视图模型在服务器上发送此消息。 Messenger类看起来像这样: [导出(“MessengerScreen”,typeof(IMessengerViewModel))] pu
..