C# WPF中两个独立视图之间的通信

C# WPF中两个独立视图之间的通信,c#,wpf,xaml,mvvm,C#,Wpf,Xaml,Mvvm,我有包含两个控件元素的MainWindows.xaml。第一个连接到MapView.xaml,第二个连接到InfoView.xaml。现在我想从InfoView-dataContextobjectInfoViewModelfromMapView-dataContextobjectMapViewModel执行方法 我该怎么做 MapView.xaml.cs public MapView() { InitializeComponent(); _mapViewM

我有包含两个控件元素的
MainWindows.xaml
。第一个连接到
MapView.xaml
,第二个连接到
InfoView.xaml
。现在我想从
InfoView-dataContext
object
InfoViewModel
from
MapView-dataContext
object
MapViewModel
执行方法

我该怎么做

MapView.xaml.cs

public MapView()
    {
        InitializeComponent();
        _mapViewModel = new MapViewModel();
        this.DataContext = _mapViewModel;
    }
public InfoView()
    {
        InitializeComponent();
        _infoViewModel = new InfoViewModel();
        this.DataContext = _infoViewModel;
    }
InfoView.xaml.cs

public MapView()
    {
        InitializeComponent();
        _mapViewModel = new MapViewModel();
        this.DataContext = _mapViewModel;
    }
public InfoView()
    {
        InitializeComponent();
        _infoViewModel = new InfoViewModel();
        this.DataContext = _infoViewModel;
    }

方法之一是使用EventAggregator和您自己的事件从源发送通知并在订阅服务器中捕获

这种方法的一个优点是它是通用的,您可以从任何地方向任何地方发送任何消息来完成任何事情,您可以从源发送消息并在订阅服务器中捕获它

EventAggregator内置于Prism中