C# 如何将变量更改通知多个视图模型?

C# 如何将变量更改通知多个视图模型?,c#,wpf,mvvm,viewmodel,C#,Wpf,Mvvm,Viewmodel,我的一个视图包含一个下拉菜单。进行选择时,必须使其视图模型和程序中的所有其他视图模型了解更改,以便它们可以更新其视图。 当前,每个视图模型都包含其自己的选择副本,当它被更改时,我会 手动更新它们(我只需要对每一个进行公共刷新(intnewval)。有更好的方法吗?您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件。您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件.使用(聚合)事件 加载视图时订阅事件,卸载视图时取消订阅,并确保在加载视图时

我的一个视图包含一个下拉菜单。进行选择时,必须使其视图模型和程序中的所有其他视图模型了解更改,以便它们可以更新其视图。 当前,每个视图模型都包含其自己的选择副本,当它被更改时,我会
手动更新它们(我只需要对每一个进行公共刷新(intnewval)。有更好的方法吗?

您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件。

您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件.

使用(聚合)事件

加载视图时订阅事件,卸载视图时取消订阅,并确保在加载视图时初始化视图模型中的变量。然后在选择更改时发布事件(将新数据作为参数传递)。

使用(聚合)事件


加载视图时订阅事件,卸载视图时取消订阅,并确保在加载视图时初始化视图模型中的变量。然后在选择更改时发布事件(将新数据作为参数传递)。

一种可能的方法可能是使用事件聚合器。聚合器用于在发布者和接收者之间分派消息

需要发送消息的对象在
事件聚合器
中注册消息类型,需要接收的对象也在
事件聚合器
中订阅消息类型

有很多方法可以实现这一点,我建议使用您选择的任何MVVM框架。大多数常见的框架都提供了这种经过时间验证的实现

例如。CM框架已经为此提供了
EventAgregator


请参见此处的示例:。

一种可能的方法可能是使用事件聚合器。聚合器用于在发布者和接收者之间分派消息

需要发送消息的对象在
事件聚合器
中注册消息类型,需要接收的对象也在
事件聚合器
中订阅消息类型

有很多方法可以实现这一点,我建议使用您选择的任何MVVM框架。大多数常见的框架都提供了这种经过时间验证的实现

例如。CM框架已经为此提供了
EventAgregator

请参见此处的示例: