C# 如何将变量更改通知多个视图模型?
我的一个视图包含一个下拉菜单。进行选择时,必须使其视图模型和程序中的所有其他视图模型了解更改,以便它们可以更新其视图。 当前,每个视图模型都包含其自己的选择副本,当它被更改时,我会C# 如何将变量更改通知多个视图模型?,c#,wpf,mvvm,viewmodel,C#,Wpf,Mvvm,Viewmodel,我的一个视图包含一个下拉菜单。进行选择时,必须使其视图模型和程序中的所有其他视图模型了解更改,以便它们可以更新其视图。 当前,每个视图模型都包含其自己的选择副本,当它被更改时,我会 手动更新它们(我只需要对每一个进行公共刷新(intnewval)。有更好的方法吗?您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件。您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件.使用(聚合)事件 加载视图时订阅事件,卸载视图时取消订阅,并确保在加载视图时
手动更新它们(我只需要对每一个进行公共刷新(intnewval)。有更好的方法吗?您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件。您可以使用事件聚合器并通过它发布可由每个视图模型(可能在某种基类中)处理的事件.使用(聚合)事件 加载视图时订阅事件,卸载视图时取消订阅,并确保在加载视图时初始化视图模型中的变量。然后在选择更改时发布事件(将新数据作为参数传递)。使用(聚合)事件
加载视图时订阅事件,卸载视图时取消订阅,并确保在加载视图时初始化视图模型中的变量。然后在选择更改时发布事件(将新数据作为参数传递)。一种可能的方法可能是使用事件聚合器。聚合器用于在发布者和接收者之间分派消息 需要发送消息的对象在
事件聚合器
中注册消息类型,需要接收的对象也在事件聚合器
中订阅消息类型
有很多方法可以实现这一点,我建议使用您选择的任何MVVM框架。大多数常见的框架都提供了这种经过时间验证的实现
例如。CM框架已经为此提供了EventAgregator
类
请参见此处的示例:。一种可能的方法可能是使用事件聚合器。聚合器用于在发布者和接收者之间分派消息 需要发送消息的对象在
事件聚合器
中注册消息类型,需要接收的对象也在事件聚合器
中订阅消息类型
有很多方法可以实现这一点,我建议使用您选择的任何MVVM框架。大多数常见的框架都提供了这种经过时间验证的实现
例如。CM框架已经为此提供了EventAgregator
类
请参见此处的示例: