我们有一个用C#/WPF/Prism构建的相当大的应用程序。应用程序有几个静态模块和未知数量的动态加载模块。
我的影响范围是静态模块和shell。
我被要求实现一个将重启shell的特性,但只有在查询所有当前打开的模块是否允许重启之后。如果至少有一个模块表示不允许(例如:仍然未保存的更改),则重新启动将被推迟。
现在shell和模块通过EventAggregator
进行通信。这意味着我可以发布一个事件,然后查看是否有任何订阅服务器拒绝或允许重新启动。
这对我可以更改的所有模块都很有效。但是,我不能改变动态模块(不同的团队,不同的源代码管理)。
其中一个要求是,如果任何模块不支持此新特性,则应将其视为拒绝重新启动。
明显的问题是,我如何发现,有人没有订阅该活动?
虽然所有的viewmodels都实现了IViewModel
接口,但我看不出有多少viewmodels当前存在(所以我至少可以看看是不是所有的viewmodels都允许,或者只是缺少了一些答案)。
我可能会知道,有多少模块支持它,但即使这样也不能说明有多少viewmodels当前被视图打开/存在/使用。
是否有一种方法可以在不更改所述viewmodel的情况下发现活动viewmodel是否不支持此功能?
在任何给定时刻,您都可以查看IRegionManager.Regions以查找所有现有区域。集合中的每个IRegion都有IRegion.ActiveViews,它给出了该区域中当前所有活动视图的列表。然后可以检查每个视图(它是一个对象)是否附加了某个属性或实现了某个接口。然后,如果视图是FrameworkElement,您还可以检查它的DataContext。
如果您发现了一个没有属性/接口的视图,则该视图不支持重新启动。如果视图具有属性/接口,则查询该接口。
如果创建其他(有范围的)区域经理,则需要跟踪他们。您维护一个活动区域管理器列表,最初只包含附加到shell的区域管理器。在检查视图时,如果视图是FrameworkElement并且附加了区域管理器,并且附加的区域管理器不在列表中,则将其添加到列表中,并使用相同的算法检查由该区域管理器控制的视图。
本文向大家介绍iOS 如何找到最合适的控件来处理事件?相关面试题,主要包含被问及iOS 如何找到最合适的控件来处理事件?时的应答技巧和注意事项,需要的朋友参考一下 自己是否能接收触摸事件? 触摸点是否在自己身上? 从后往前遍历子控件,重复前面的两个步骤 如果没有符合条件的子控件,那么就自己最适合处理
本文向大家介绍W3C的事件处理和IE的事件处理有哪些区别?相关面试题,主要包含被问及W3C的事件处理和IE的事件处理有哪些区别?时的应答技巧和注意事项,需要的朋友参考一下 绑定事件 W3C addEventListener ;IE attachEvent 移除事件 W3c removeEventListner;IE detachEvent 阻止默认事件 W3C e.preventDefault;
我们需要在constructor中对于事件与对应的handler函数进行绑定. 大多数时候我们在发出DOM事件的组件内部写我们的handler函数. 在下面的例子中,我们在组件内部创建了一个click handler, 因为我们想所有的Swithcer Component当被点击时,做出同样的响应. class Switcher extends React.Component { render
我不喜欢流口水。我正在尝试使用Drools Fusion编写一个简单的复杂事件处理(CEP)应用程序。 我的要求是 我有一个简单的Event类,如下所示: 规则文件如下: 为了进行测试,我将向工作内存中注入4个事件,分别是e1、e2、e3、e4,时间线分别为0m、4m、10m、12m。 Jave类文件 我希望e1通过规则,因为它没有前面的事件。我还预计e3将通过,因为前面的比赛还有6分钟。 但是,
事件处理概述 事件处理是对象化编程的一个很重要的环节,没有了事件处理,程序就会变得很死,缺乏灵活性。事件处理的过程可以这样表示:发生事件 - 启动事件处理程序 - 事件处理程序作出反应。其中,要使事件处理程序能够启动,必须先告诉对象,如果发生了什么事情,要启动什么处理程序,否则这个流程就不能进行下去。事件的处理程序可以是任意 JavaScript 语句,但是我们一般用特定的自定义函数(functi
Mpx在事件处理上基于原生小程序,支持原生小程序的全部事件处理技术规范,在此基础上新增了事件处理内联传参的增强机制。 原生小程序事件处理详情请参考这里 增强的内联传参能力对于传递参数的个数和类型没有特殊限制,可以传递各种字面量,可以传递组件数据,甚至可以传递for中的item和index, 当内联事件处理器中需要访问原始事件对象时,可以传递$event特殊关键字作为参数,在事件处理器的对应参数位置