仅MVVM WPF架构模型中的事件

仅MVVM WPF架构模型中的事件,wpf,mvvm,eventaggregator,Wpf,Mvvm,Eventaggregator,我的领导层要求我将活动集中在一个集中的地方 这就是故事 我们实现了一个体系结构,在这个体系结构中,我们将系统开发为组件(比如一个组件是网格,另一个是树)。这些组件中的每一个都将使用MVVM设计模式构建,模型对于上述两个组件都是通用的 希望你仍然和我在一起 每个组件独立的原因是,我们可以使用独立的组件,并根据需要在项目中结合这些组件。假设我们有一个场景,希望在项目中使用网格和树组件 并且需要使用事件在组件之间进行通信。我们有两种想法(都使用事件聚合器) 学校a) 每个组件的VM将引发和使用事件。模

我的领导层要求我将活动集中在一个集中的地方

这就是故事

我们实现了一个体系结构,在这个体系结构中,我们将系统开发为组件(比如一个组件是网格,另一个是树)。这些组件中的每一个都将使用MVVM设计模式构建,模型对于上述两个组件都是通用的

希望你仍然和我在一起

每个组件独立的原因是,我们可以使用独立的组件,并根据需要在项目中结合这些组件。假设我们有一个场景,希望在项目中使用网格和树组件

并且需要使用事件在组件之间进行通信。我们有两种想法(都使用事件聚合器)

学校a) 每个组件的VM将引发和使用事件。模型将包含数据和一些业务逻辑。(模型中包含明显的属性更改事件)

学校(乙) 让我们在模型中集中所有事件。模型引发事件,VM根据需要使用该事件


你觉得哪一个更好

第一个更好,因为在这种情况下,您非常坚持mvvm模式,当您的项目变得更大时,您很容易在相应的viewmodels中检查特定组件的问题。这将很容易管理。

如果我们在模型中有它,它是一个单一的位置(在组件中很常见),我们知道所有VM将使用的所有事件(事件的消耗)。建模基本上是mvvm的数据部分,用于逻辑实现。您应该使用vm,用于通信,您也可以使用mvvm的messenger类。我想的问题是,当您的项目变得更大时,第一个aproach会更好。您可以更好地跟踪问题。您能否提供您认为对我们有帮助的具体项目更大的项目。即使你有一个链接可以帮助我们,实际上这个mvvm模式是面向大型项目的。mvvm模式并不意味着您不能在page.xaml.cs中执行任何操作,您可以在这个类中为UI工作,但对于逻辑部分,您可以在viewmodels中实现它们。并正确定义它所在页面的viewmodel。页面和视图模型应该是一个实体。因此,当您的工作变得更大时,您可以将该实体视为一个对象,这样您就可以轻松地进行管理。最后,试着坚持这种模式,如果你有任何问题,就把它贴在这里,我一定会帮助你解决任何问题,这是一个广泛的问题,将导致一场关于mvvm模式及其使用的辩论,我建议创建一个事件及其处理的相关小示例抱歉,Makc。。。事件及其处理的小示例。。。你的意思是我在这里指的是什么类型的事件,或者这两个组件将处理什么类型的事件?如果我对你的问题的假设是正确的,那么就说用户希望从树上拖动一个节点并放到网格上。需要在从网格上的树中删除节点的两个组件之间进行通信。。此外,模型还将修改其数据